У меня есть маршрутизатор, как показано ниже:
<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 и обработчиков маршрутов, но похоже, что эти два решения теперь устарели.