登录后反应路由器导航
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');
【讨论】:
以上是关于登录后反应路由器导航的主要内容,如果未能解决你的问题,请参考以下文章
登录页面后反应路由器 v6 不会切换到主页:警告:无法对未安装的组件执行 React 状态更新