Редуктор не обновляет состояние с разрушенным свойством - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть следующее действие:

{type: "SET_GROUP", group: 68, categories: Array(3), year: 64}

В моем редукторе у меня есть следующий код:

    case "SET_GROUP":
        const { group } = action;

        const showStudent = !checkEmptyArray(action);
        return { ...state, group, showStudent };

Однако group никогда не добавляется в состояние:

{year: 64, group: 0, student: 0, showStudent: true}

Есть идеи?

Разбавление:

export function setCredentials(state = initialState, action) {
    switch (action.type) {
        case "SET_YEAR":
            return {
                ...state,
                year: action.year,
                group: 0,
                student: 0
            };
        case "SET_STUDENT":
            return { ...state, student: action.student };
        case "SET_GROUP":
            const { group } = action;

            const showStudent = !checkEmptyArray(action);

            return { ...state, group, showStudent };
        case "CLEAR_CREDENTIALS":
            return initialState;

        default:
            return state;
    }
}

InitialState:

const initialState = {
    year: 0,
    group: 0,
    student: 0,
    showStudent: false
};

1 Ответ

0 голосов
/ 25 апреля 2018

В случае, если вы не используете промежуточное программное обеспечение для сохранения / загрузки (что может быть причиной, и в случае, если вы можете решить ее, выполнив команду localStorage.clear() в консоли разработчика js вашего браузера)
Для проверки своего кода попробуйте следующее:

case "SET_GROUP":
    const showStudent = !checkEmptyArray(action);
    return { 
        ...state, 
        group: action.group, 
        showStudent 
    };

А также проверьте ваш "SET_YEAR" случай, в котором он также модифицирует атрибуты group и student. Эта практика может привести к беспорядочной реализации редуктора, если она станет больше (как в действительности это "SET_YEAR_RESET_GROUP_RESET_STUDENT" действие)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...