weixin_43998771 2021-11-11 16:58 采纳率: 50%
浏览 53

React 空对象的props v6 react-router

问题:在react-router v5 ,Route 的path 可以在pros拿到。在v6 是空对象,不知道大家怎么解决

看v5的

import React from 'react'
import HouseAdd from "./houseAdd"
import House from "./house"
import HouseEdit from "./houseEdit"
import { NavLink, Routes, Route } from 'react-router-dom'

const layout: React.FC = function () {
    return (
        <div>
            <header>
                <ul>
                    <li><NavLink to="/">首页</NavLink></li>
                    <li><NavLink to="/add">添加</NavLink></li>
                    <li><NavLink to="/edit/sada123">添加</NavLink></li>
                </ul>
                <div>
                    <Routes>
                        <Route path="/" element={<House />}></Route>
                        <Route path="/add" element={<HouseAdd />}></Route>
                        <Route path="/edit/:id" element={<HouseEdit />}></Route>
                    </Routes>
                </div>
            </header>
        </div>
    )
}
export default layout;

另一个页面用props

import React from 'react'
import { RouteProps } from 'react-router';

export  default class HouseEdit extends React.Component<RouteProps> {
    
    render() {
        // console.log(new URL(window.location.href))
        console.log(this.props)
        return (
            <div>edit
                
            </div>
        )
    }
}

img


再看v6的

import React from 'react'
import HouseAdd from "./houseAdd"
import House from "./house"
import HouseEdit from "./houseEdit"
import { NavLink, Routes, Route } from 'react-router-dom'

const layout: React.FC = function () {
    return (
        <div>
            <header>
                <ul>
                    <li><NavLink to="/">首页</NavLink></li>
                    <li><NavLink to="/add">添加</NavLink></li>
                    <li><NavLink to="/edit/sada123">添加</NavLink></li>
                </ul>
                <div>
                    <Routes>
                        <Route path="/" element={<House />}></Route>
                        <Route path="/add" element={<HouseAdd />}></Route>
                        <Route path="/edit/:id" element={<HouseEdit />}></Route>
                    </Routes>
                </div>
            </header>
        </div>
    )
}
export default layout;

import React from 'react'

export default class HouseEdit extends React.Component {
    render(){
        console.log(this.props)
        return (
            <div>
               V6 edit
            </div>
        )
    }
}

img

  • 写回答

2条回答 默认 最新

  • 「已注销」 2021-11-12 10:18
    关注

    代码的问题比较大啊,兄弟

    评论

报告相同问题?

问题事件

  • 创建了问题 11月11日

悬赏问题

  • ¥100 iOS开发关于快捷指令截屏后如何将截屏(或从截屏中提取出的文本)回传给本应用并打开指定页面
  • ¥15 unity连接Sqlserver
  • ¥15 图中这种约束条件lingo该怎么表示出来
  • ¥15 VSCode里的Prettier如何实现等式赋值后的对齐效果?
  • ¥15 流式socket文件传输答疑
  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
  • ¥15 win10,这种情况怎么办
  • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
  • ¥100 在连接内网VPN时,如何同时保持互联网连接