Ниже приведен мой код функционального компонента в реакции, в котором я настраиваю маршрут на основе статуса userLoggedIn.
let routes;
if (user.loggedIn === true) {
routes = (
<Switch>
<Route exact path="/" component={Home} />
<Route path="/UserProfiles" component={UserProfiles} />
<Route path="/EditProfile/" component={EditUserProfile} />
<Redirect to="/" />
</Switch>
)
}
else{
routes = (
<Switch>
<Route exact path="/" component={Home} />
<Route path="/Signup" component={SignUp} />
<Redirect to="/" />
</Switch>
)
}
В функцию возврата моего компонента я включил этот маршрут как :
return (
...
{routes}
...
);
Все работает нормально, единственная проблема, с которой я сталкиваюсь, это когда пользователь вошел в систему и переходит по URL: 'localhost: 3000 / UserProfiles' или, 'localhost: 3000 / EditProfile /' напрямую войдя в браузер. Они перенаправляются на домашний компонент из-за <Redirect to="/" />
. Я не понимаю, почему Redirect не работает для правильных путей.