在组件1的某处,我有:
if (redirectToReferrer) {
return <Redirect to={{
pathname: "/test/new",
state: { event: "test" }
}} />;
}
在我的组件2中,我有这个:
constructor(props){
super(props);
console.log(this.props.location) //undefined
}
根据docs,这应该有用。
可以通过this中的this.props.location.state访问状态对象 重定向到组件。这个新的推荐人密钥(这不是特别的 然后将通过this.props.location.state.referrer访问。) 路径名'/ login'
指向的Login组件
为什么this.props.location
未定义?
答案 0 :(得分:2)
确保“ / test / new”由 App.js 中的<Route/>
组件定义或在定义路由的任何位置。
<Route path="/test/new" component={NewTestComp}/>
如果已使用render方法定义了定义,请确保将props这样传递给组件。
<Route path="/test/new" render={(props) => <NewTestComp {...props}/>}/>
答案 1 :(得分:1)
技术上直接路由的组件如下:
<Route path="/about" component={About} />
具有由路由器提供的道具,例如位置,因此请确保无论您在何处重定向,该组件都有定义的路由。
答案 2 :(得分:0)
升级到最新版本的 react-router-dom。目前在 5.2.0 版本