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