登录后反应路由器导航

Posted

技术标签:

【中文标题】登录后反应路由器导航【英文标题】:React router nivagate after login 【发布时间】:2017-06-24 00:20:56 【问题描述】:

登录成功后尝试实现重定向。 history.pushState(null,null, '/profile') 不起作用。只需更改 URL 和所有内容。 browserHistory.push('/profile');一样

登录后如何创建重定向?

        case types.LOG_IN_SUCCESS:
        history.pushState(null,null, '/profile');

谢谢

【问题讨论】:

“不起作用”是什么意思?具体一点。 @Jordan,这会将 URL 更改为 /profile,但不会呈现该路由中的组件。表示不导航到新页面 Automatic redirect after login with react-router的可能重复 【参考方案1】:

需要在路由器上调用push方法:

this.context.router.push('/profile');

如果您在登录组件中需要路由器 - 如果您添加它,您将拥有路由器。

LoginComponent.contextTypes = 
    router: React.PropTypes.object.isRequired
;

【讨论】:

【参考方案2】:

React Router 有 replace 方法而不是 transitionTo 用于重定向。 如果您有一些旧版本的路由器,您可能需要使用transitionTo

检查来自 Michelle Tilley 的 this。


我认为在您的情况下您可以使用(不需要this 取决于您拥有的版本):

var Router = require('react-router');
Router.browserHistory.push('/somepath');

【讨论】:

以上是关于登录后反应路由器导航的主要内容,如果未能解决你的问题,请参考以下文章

反应路由器 - 登录后重定向

反应路由器 - 登录后重定向

在浏览器上点击刷新后反应路由器 v4 登录检查

登录页面后反应路由器 v6 不会切换到主页:警告:无法对未安装的组件执行 React 状态更新

反应路由器/反应查询不会取消/发出导航请求 - 反应/打字稿

根据路由反应路由器导航栏