我根本不知道为什么我的重定向无法在目标组件中访问以下状态。
这些是路线:
{
path: '/logout',
component: () => <Redirect to={{
pathname: '/login',
state: {referrer: "logout"}
}}/>
},
{ path : '/login',
component: Login
}
在登录组件(/ login路径的接收者)中,我只是检查状态对象,它总是未定义:
componentDidUpdate(prevProps, prevState) {
if(this.props.location.state !== undefined) {
alert("i come from logout");
}
}
当然我的Login组件由HOC withRouter()包装。我虽然使用react-router-config。不知道这是否与它有关。
有人对此有好主意吗?
也许我可以通过检查location.history来选择一种解决方法,看看我是否来自注销,如果这是在重定向的历史记录中,但我宁愿理解为什么这种状态不起作用。
感谢
答案 0 :(得分:0)
由于/login
是一个不同的路由,您应该检查componentDidMount
生命周期方法和not in componentDidUpdate
,因为路由将挂载而不是重新呈现
componentDidMount() {
if(this.props.location.state !== undefined) {
alert("i come from logout");
}
}