Реакция перенаправляется после обновления с помощью Redux

#reactjs #redirect #redux

Вопрос:

Я создаю простое приложение для аутентификации с использованием MERN Redux, в котором после успешного входа пользователя перенаправляется на домашнюю страницу, на которой я отправляю действие, возвращающее файл cookie ( успешный вход равен файлу cookie = true, и наоборот).

Это код на домашней странице

 const dispatch = useDispatch();
const cookie_info = useSelector( state => state.is_user_logged_in );
const { cookie, loading } = cookie_info;
React.useEffect(()=>{
    dispatch(get_cookie_action());
},[]);

return (
    <>
        {
            loading 
            ?
            <h1>LOADING</h1>
            :
            (
                cookie
                ?
                (
                   <div>
                        <Navbar/>
                   </div>
                )
                :
                <Redirect to="/login"/>
            )
        }
    </>
);
 

Проблема в том, что после входа пользователя в систему все работает, но после того, как я обновляю домашнюю страницу, я снова перенаправляюсь на страницу входа, это означает, что реакция не ждет изменения состояния файла cookie с ложного на истинное и немедленно «срабатывает»

    <Redirect to="/login"/> 
 

часть кода. Мое начальное состояние cookie в редукторах является ложным.

Комментарии:

1. Похоже, вам нужно сохранить хранилище redux, чтобы при обновлении оно не возвращалось в исходное состояние. Узнайте больше о redux persist .

2. Почему вы храните файлы cookie в магазине redux ? Лучше хранить его как файл cookie браузера, в котором он будет сохраняться, даже если ваш браузер закрыт (до истечения срока действия файла cookie) ?

3. @K. vindi Я храню файл cookie внутри файла cookie браузера, и он является HttpOnly, поэтому я отправляю действие в серверную часть NodeJS, в котором я возвращаю true/false, действителен ли файл cookie