ReactJs this.props.router 未定义
IT技术
javascript
reactjs
react-router
react-dom
2021-05-10 12:42:36
1个回答
您缺少一个调用super(). super()调用父类的构造函数,需要将父类的属性正确传递给该组件。您需要它来访问传递给组件的任何属性,包括router.
布局类的顶部应如下所示。
export default class Layout extends React.Component {
constructor(props) {
super(props)
}
navigate() {
...
}
render() {
...
}
}
编辑 1:react-router
withRouter通过 进行导航时,您还需要使用新的this.props.router。您可以通过将您的组件作为参数传递并导出它来完成此操作。该withRouter函数只是将您的组件包装在另一个组件中,该组件将路由器props向下传递给您的组件。我应该指出,还有其他方法可以进行编程路由(单例、上下文等),但是在使用时,this.props.router.push您需要使用withRouter.
import { withRouter } from 'react-router'
class Layout extends React.Component {
constructor(props) {
super(props)
}
navigate() {
...
}
render() {
...
}
}
export default withRouter(Layout)

