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

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

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

有人对此有什么好主意吗?

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

谢谢

最佳答案

由于 /login 是不同的路由,因此您应该在 componentDidMount 生命周期方法中进行检查,而不在 componentDidUpdate 中进行检查,因为路由将挂载并且不重新渲染

componentDidMount() {

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

关于reactjs - 状态重定向在 React Router 4.x 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50795471/

相关文章:

reactjs - 基于通配符路由的 Esri-arcgis 请求拦截

ruby-on-rails - rails + Angular : Redirection After Sign-In/Up

c - 在 bash 中运行 ./configure 并将 out/err 重定向到文件

Javascript 重定向 - 错误的重定向

javascript - 使用来自服务 Angularjs 的配置在 .run() 中生成路由

java - REST API - 客户端 session 状态与数据库 session 状态

javascript - 在React项目中, "this"转换为 "undefined"

javascript - 在 JS/REACT 中创建 Json 对象变量

python - gRPC Web 服务器返回 "Method not found"

javascript - Redux 状态的异步初始化