У меня есть следующее (избыточное) состояние:

{
  authentication: user
}

Выйдя из системы, user имеет значение null.

У меня есть следующие компоненты:

const Dashboard = ({ authentication }) => {

  if (!authentication.user) {
    return <Redirect to={"/login"} />
  }

  return (
    <SomeInnerComponent />
  );
}

const SomeInnerComponent = ({ authentication }) => {

  const name = authentication.user.name;

  return (
    <h1>Hello, {name}</h1>
  )
}

authentication отображается с использованием connect и mapStateToProps. Я думаю, что когда я выйду из системы, я буду перенаправлен, но вместо этого получаю ошибку: authentication.user is null.

Почему if - оператор в Dashboard не перенаправляет меня? Я также попытался обернуть его в useEffect с authentication в качестве зависимости.

0
Titulum 16 Апр 2020 в 21:15

2 ответа

Вы можете попробовать это?

if (!authentication || !authentication.user) {
    return <Redirect to={"/login"} />;
  }
0
Carlos Saiz Orteu 16 Апр 2020 в 18:26

В нашем приложении мы перенаправляем неаутентифицированных пользователей по history.replace исторические документы или вы снова читаете документы, возможно, вы можете найти ошибку в своем коде responsetraining

0
Dmitry_r 16 Апр 2020 в 19:44