我有一个路由器像下面:
<Router history={hashHistory}>
<Route path="/" component={App}>
<IndexRoute component={Index}/>
<Route path="login" component={Login}/>
</Route>
</Router>
以下是我想要实现的目标:
/login
/login
,请将其重定向到root/
因此,现在我尝试在应用程序的
组件didmount
中检查用户的状态,然后执行如下操作:
if (!user.isLoggedIn) {
this.context.router.push('login')
} else if(currentRoute == 'login') {
this.context.router.push('/')
}
这里的问题是我找不到获取当前路由的API。
我发现这个已解决的问题建议使用Router.ActiveState mixin和route处理程序,但这两个解决方案现在似乎已被弃用。
你可以得到当前的路线使用
const currentRoute = this.props.routes[this.props.routes.length - 1];
…这使您可以从最低级别的活动
鉴于...
<Route path="childpath" component={ChildComponent} />
当前oute.path返回
'子路径
和当前oute.component
返回函数_class(){...}
。
在阅读了更多的文档后,我找到了解决方案:
https://github.com/ReactTraining/react-router/blob/master/packages/react-router/docs/api/location.md
我只需要访问组件实例的注入属性位置
,如:
var currentLocation = this.props.location.pathname
问题内容: 我有一个如下的路由器: 这是我要实现的目标: 将用户重定向到(如果未登录) 如果用户在已经登录时尝试访问,请将其重定向到root 所以现在我想以检查用户的状态的,然后做一些事情,如: 这里的问题是我找不到获取当前路由的API。 我发现建议使用Router.ActiveState mixin和路由处理程序来解决此已关闭的问题,但是现在似乎已弃用了这两个解决方案。 问题答案: 阅读更多文档
如何使用react router v4获取当前路径? 我尝试了以下方法,但没有成功: 错误: 这是我的Routes.js文件:
问题内容: 我想显示在以某种方式从目前的路线通过。 在React Router v4中,如何将当前路由传递到prop中? 有没有办法通过从自定义自定义标题上? 问题答案: 在5.1版本的react-router中,有一个名为 useLocation 的钩子,该钩子返回当前的位置对象。每当您需要知道当前URL时,这可能都会有用。
在此URL中: 我想抓,当然是在路由里面。这工作很棒: 但是我想访问任何路由之外的路径以及文件如下:
问题内容: 在实现持久性底部栏时,单击底部栏中的按钮时,需要恢复以前的路线。 单击底部栏中的按钮时,将保存其当前路径路径(/ a / b / c ),并根据该按钮单击恢复先前保存的路径。 从概念上讲,用户会将每个按钮视为一个工作区,并且其状态永远不会丢失(包括后退堆栈)。用户可以安全地从一个工作区切换到另一个工作区。 当路由重绕到根时,如何在Flutter中获取当前路由路径? 问题答案: 不会公开