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