当前位置: 首页 > 面试题库 >

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

申屠晟
2023-03-14
问题内容

我有一个如下的路由器:

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

这是我要实现的目标:

  1. 用户重定向到(/login如果未登录)
  2. 如果用户/login在已经登录时尝试访问,请将其重定向到root/

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

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

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

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


问题答案:

阅读更多文档后,我找到了解决方案:

https://github.com/ReactTraining/react-router/blob/master/packages/react-
router/docs/api/location.md

我只需要访问location组件实例的注入属性,例如:

var currentLocation = this.props.location.pathname


 类似资料:
  • 我有一个路由器像下面: 以下是我想要实现的目标: 如果未登录,将用户重定向到 如果用户在登录后试图访问,请将其重定向到root 因此,现在我尝试在

  • 问题内容: 我想显示在以某种方式从目前的路线通过。 在React Router v4中,如何将当前路由传递到prop中? 有没有办法通过从自定义自定义标题上? 问题答案: 在5.1版本的react-router中,有一个名为 useLocation 的钩子,该钩子返回当前的位置对象。每当您需要知道当前URL时,这可能都会有用。

  • 我需要得到当前路径的url在路由更改和基于值我想做条件渲染 这是我的代码,我没有继续的想法。 所以我需要做的是: 对于每个更改,我需要更新的值,并进行条件渲染,并将该值(路径)作为

  • 问题内容: 在实现持久性底部栏时,单击底部栏中的按钮时,需要恢复以前的路线。 单击底部栏中的按钮时,将保存其当前路径路径(/ a / b / c ),并根据该按钮单击恢复先前保存的路径。 从概念上讲,用户会将每个按钮视为一个工作区,并且其状态永远不会丢失(包括后退堆栈)。用户可以安全地从一个工作区切换到另一个工作区。 当路由重绕到根时,如何在Flutter中获取当前路由路径? 问题答案: 不会公开

  • 在实现持久底部栏时,当单击底部栏中的按钮时,需要恢复以前的路由。 单击底部栏中的按钮时,会保存其当前路线路径(/a/b/c ),并根据按钮的单击恢复先前保存的路线。 从概念上讲,用户会认为每个按钮都是一个工作区,其状态永远不会丢失(包括后退堆栈)。用户可以安全地从一个工作区切换到另一个工作区。 当路由重绕到根时,如何在Flutter中获取当前路由路径?