Вы можете заключить частные маршруты в отдельный компонент и перенаправить оттуда.
Сначала создайте компонент PrivateRoute:
function PrivateRoute({ auth, children, ...rest }) {
const { isLoggedIn } = auth;
return (
<Route
{...rest}
render={({ location }) =>
isLoggedIn ? (
children
) : (
<Redirect
to="/login"
/>
)
}
/>
);
}
Замените код
<Route path="/dashboard" component={DashboardTeachers} />
{this.renderRoutes()}
на this
<PrivateRoute auth={auth}>
<Route path="/dashboard" component={DashboardTeachers} />
</PrivateRoute>
И в вашем компоненте входа, перенаправить после успешной аутентификации
if (!isLoggedIn) {
return (
// your login ui
);
}
// redirect to dashboard if login is false
return <Redirect to="/dashboard" />;