我有一个如下的路由器:
<Router history={hashHistory}>
<Route path="/" component={App}>
<IndexRoute component={Index}/>
<Route path="login" component={Login}/>
</Route>
</Router>
这是我要实现的目标:
- 将用户重定向到(
/login
如果未登录) - 如果用户
/login
已登录时尝试访问,请将其重定向到root/
所以现在我想以检查用户的状态App
的componentDidMount
,然后做一些事情,如:
if (!user.isLoggedIn) {
this.context.router.push('login')
} else if(currentRoute == 'login') {
this.context.router.push('/')
}
这里的问题是我找不到获取当前路由的API。
我发现建议使用Router.ActiveState mixin和路由处理程序来解决此已关闭的问题,但是现在似乎已弃用了这两个解决方案。
以同样的方式为我工作:
然后,我可以在MyComponent函数中访问“ this.props.location.pathname”。
我忘了那是我...)))以下链接介绍了更多有关制作导航栏的信息:react router this.props.location