【问题标题】:Redirect with state not working in React Router 4.x重定向状态在 React Router 4.x 中不起作用
【发布时间】:2018-06-11 10:19:45
【问题描述】:

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

这些是路线:

{
        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");
        }
}

当然,我的登录组件是由 HOC withRouter() 包装的。我正在使用 react-router-config 。不知道这是否与它有关。

有人对此有好的想法吗?

也许我可以通过检查 location.history 来选择一种解决方法,看看我是否来自注销,是否将其放入历史记录以进行重定向,但我宁愿理解为什么这种状态不起作用。

谢谢

【问题讨论】:

    标签: reactjs redirect state react-router-v4


    【解决方案1】:

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

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

    【讨论】:

    • 对不起,但这根本没有任何区别。
    • 您是否也直接访问登录屏幕,而不是从注销中访问
    猜你喜欢
    • 2017-10-05
    • 2021-07-27
    • 1970-01-01
    • 2021-07-24
    • 2018-05-21
    • 2021-02-11
    • 2020-03-09
    • 2017-10-09
    • 1970-01-01
    相关资源
    最近更新 更多