如何在react-router 2.0.0-rc5中获得当前路由?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (56)

我有一个如下的路由器:

<Router history={hashHistory}>
    <Route path="/" component={App}>
        <IndexRoute component={Index}/>
        <Route path="login" component={Login}/>
    </Route>
</Router>

这是我想要达到的目标:

  1. 重定向用户,/login如果没有登录
  2. 如果用户/login在已经登录时尝试访问,则将其重定向到根目录/

所以现在我想以检查用户的状态AppcomponentDidMount,然后做一些事情,如:

if (!user.isLoggedIn) {
    this.context.router.push('login')
} else if(currentRoute == 'login') {
    this.context.router.push('/')
}

这里的问题是我无法找到获取当前路由的API。

我发现使用Router.ActiveState mixin和路由处理程序建议了这个关闭的问题,但现在看起来这两个解决方案现在已被弃用。

提问于
用户回答回答于
用户回答回答于

可以使用当前路线

const currentRoute = this.props.routes[this.props.routes.length - 1];

.可以访问最低级活动<Route ...>组件中的道具。

鉴于...

<Route path="childpath" component={ChildComponent} />

currentRoute.path返回'childpath'currentRoute.component返回function _class() { ... }

扫码关注云+社区

领取腾讯云代金券