Пользовательские переменные состояния редуктора отмены Redux не распознаются

Чтобы реализовать настраиваемую функцию отмены / повтора, я следовал инструкциям в https://redux.js.org/recipes/implementing-undo-history и модифицировал их, чтобы они соответствовали моему собственному редуктору. Теперь, когда я пытаюсь запустить код, я получаю ошибки, которые не определены в прошлом, настоящем и будущем. Ошибка не появляется в исходных случаях, а появляется только вActionTypes.LAYOUT_SET_MOVES, ActionTypes.LAYOUT_UNDO_MOVES а также ActionTypes.LAYOUT_REDO_MOVES случаи.

Я просмотрел код и сравнил переменные состояния с другими редукторами и не нашел для этого явной причины. Если бы вы могли указать мне правильное направление, я был бы признателен.

Полный код редуктора ниже.

Спасибо.

export const layout_moveData = (state = {
    past: [],
    present: null,
    future: []
}, action) => {

    switch (action.type) {
        case ActionTypes.LAYOUT_DESKS_LOADED:
            return { ...state, present: action.payload, past: [], future: [] };
        case ActionTypes.LAYOUT_RESTORE_ALL:
            return { ...state, present: action.payload, past: [], future: [] };
        case ActionTypes.LAYOUT_SET_MOVES:
            let previousSet = [...past, present];
            return { ...state, past: previousSet, present: action.payload, future: [] };
        case ActionTypes.LAYOUT_UNDO_MOVES:
            if (past.length === 0) return state;
            let previous = past[past.length - 1];
            let newPast = past.slice(0, past.length - 1);
            return { ...state, past: newPast, future: [present, ...future], present: previous };
        case ActionTypes.LAYOUT_REDO_MOVES:
            let next = future[0]
            let newFuture = future.slice(1)
            return { ...state, past: [...past, present], present: next, future: newFuture };
        default:
            return state

    }

1 ответ

При доступе к переменным состояния в редукторе мне нужно было использовать this.state.past, this.state.present и this.state.future, в то время как значения, которые я возвращаю в переключателе, определяют новое состояние с простыми переменными прошлого, настоящего и будущего..

Другие вопросы по тегам