Задать вопрос
@dbmb
Верстка just for fun

Почему выполняется только последний dispatch?

Доброго времени суток!

Появилась проблема с редаксом, до этого с ним вообще не работал.
У меня есть стейт в котором хранится состояние авторизации и стейт в котором лежат данные пользователя.
В процессе авторизации, когда я пытаюсь получить обновленный стейт из стора, у меня выполняется только последний диспатч, в чем может быть дело?

Сам метод проверки авторизации:
authStatus = (response) => {
        if (response.message === "Success" || response.message === "Already login") {
            this.props.loginState(true);
            this.props.setUserData(response.result);
        } else {
            this.setState({
                isOpenModalSignin: true
            });
            this.props.loginState(false);
        }
    };

И connect:
connect(
    state => ({
        isLogin: state.isLogin,
        userData: {
            userName: state.userName,
            email: state.email,
            id: state.id
        }
    }),
    dispatch => ({
        loginState: (loginState) => {
            dispatch({
                type: "IS_AUTH",
                payload: loginState
            })
        },
        setUserData: (userData) => {
            dispatch({
                    type: "USER_DATA",
                    payload: userData
                }
            );
        }
    })


Собственно, если я последним выполняю setUserData, то loginState не выполняется, а возвращает undefined
  • Вопрос задан
  • 77 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
maxfarseer
@maxfarseer
https://maxpfrontend.ru, обучаю реакту и компании
Проблем в connect'e не вижу. Ищите дальше по цепочке. Может быть дело в reducer'e?
Экшен IS_AUTH в логгере или redux_dev_tools виден?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы