重定向状态在React Router 4.x中不起作用

时间:2018-06-11 10:19:46

标签: reactjs redirect state react-router-v4

我根本不知道为什么我的重定向无法在目标组件中访问以下状态。

这些是路线:

{
        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来选择一种解决方法,看看我是否来自注销,如果这是在重定向的历史记录中,但我宁愿理解为什么这种状态不起作用。

感谢

1 个答案:

答案 0 :(得分:0)

由于/login是一个不同的路由,您应该检查componentDidMount生命周期方法和not in componentDidUpdate,因为路由将挂载而不是重新呈现

componentDidMount() {

        if(this.props.location.state !== undefined) {
            alert("i come from logout");
        }
}