Когда authedUser
является ложным app. js повторно визуализируется без
<Switch>
<Route path='/' exact component={Dashboard}/>
<Route path='/question/:id' exact component={QPage}/>
<Route path='/new' exact component={CreateQ}/>
<Route path='/leaderboard' exact component={Leaderboard}/>
<Route path='/sign-in' exact component={SignIn}/>
<Route component={Error}/>
</Switch>
поэтому ... когда вы перемещаете пользователя по /sign-in
маршруту, которого не существует
Для достижения своей цели вы можете сделать следующее:
App.js
<Switch>
<Route path='/' exact component={Dashboard}/>
<Route path='/main' exact component={Main}/>
<Route path='/sign-in' exact component={SignIn}/>
<Route component={Error}/>
</Switch>
После успешного входа в систему вы выполните команду history.pu sh ('/ main') и в Main. js все аутентифицированные маршруты будут управляться
Main.js
... your code...
if (!this.props.authedUser) {
return <Redirect to='/sign-in' />
};
return (
<Switch>
<Route path='/question/:id' exact component={QPage}/>
<Route path='/new' exact component={CreateQ}/>
<Route path='/leaderboard' exact component={Leaderboard}/>
</Switch>
)
и когда вы захотите направить пользователя к какому-либо маршруту:
history.push('/main/leaderboard')