У меня одна проблема с реагирующими маршрутизаторами.
Это мой класс приложений. Я проверяю свой токен, если он действителен, я перенаправляю на страницу панели инструментов.
class App extends Component {
constructor(props){
super(props);
this.checkAuth = this.checkAuth.bind(this);
}
checkAuth(){
if(localStorage.getItem(ACCESS_TOKEN)){
getCurrentAccount().then(response => {
this.props.onLoadCurrentAccount({ account: response, isAuthenticated: true });
this.props.history.push('/');
});
}
}
componentDidMount() {
this.checkAuth();
}
render() {
return (
<div>
<Switch>
<Route path='/login' component={Login}/>
<Route path='/signup' component={Signup} />
<PrivateRoute authenticated={this.props.account.isAuthenticated} path='/' component={CoreLayout} />
<Route component={NotFound}/>
</Switch>
</div>
);
}
}
Здесь у меня есть другие маршруты к другим компонентам, если вы авторизованы.
Всегда, когда я пытаюсь перезагрузить страницу, я захожу на страницу '/'. Например: я остаюсь на «/ контактах», но когда я перезагружаю страницу, я перехожу на «/». Как я могу это исправить?
class CoreLayout extends Component {
render() {
return (
<div>
<Menu/>
<Switch>
<Route exact path='/' component={Dashboard}/>
<Route path='/contacts' component={Contacts}/>
<Route path='/assignment' component={Assignment}/>
<Route path='/tasks' component={Tasks}/>
</Switch>
</div>
);
}
}
Спасибо