Mam router jak poniżej:
<Router history={hashHistory}>
<Route path="/" component={App}>
<IndexRoute component={Index}/>
<Route path="login" component={Login}/>
</Route>
</Router>
Oto, co chcę osiągnąć:
- Przekieruj użytkownika do,
/login
jeśli nie jest zalogowany - Jeśli użytkownik próbował uzyskać dostęp,
/login
gdy jest już zalogowany, przekieruj go do roota/
więc teraz próbuję sprawdzić stan użytkownika w App
„s componentDidMount
, a następnie zrobić coś takiego:
if (!user.isLoggedIn) {
this.context.router.push('login')
} else if(currentRoute == 'login') {
this.context.router.push('/')
}
Problem polega na tym, że nie mogę znaleźć interfejsu API, aby uzyskać aktualną trasę.
Znalazłem ten zamknięty problem sugerowany przy użyciu funkcji obsługi miksu i tras Router.ActiveState, ale wygląda na to, że te dwa rozwiązania są teraz przestarzałe.