Почему этот редуктор не вызывает изменения вида с помощью redux?

Таким образом, я создаю приложение в redux, и я столкнулся с проблемой, описанной в документации redux, где мое представление не будет обновляться после отправки действия. В документации предполагается, что это происходит при изменении состояния. Единственная проблема в том, что я не понимаю, как то, что я делал, считается мутацией:

case AppConstants.UPDATE_ALL_TIMERS:
    return action.timers

Это, однако, работает:

case AppConstants.UPDATE_ALL_TIMERS:
    let newState = state.map((timer, index) => {
        return action.timers[index]
    });
    return newState

Как получается, что простое возвращение значения действия в качестве нового состояния считается мутацией состояния? Чего мне не хватает?

Ниже представлена вся моя редуктор, два случая до UPDATE_ALL_TIMERS работал просто хорошо. Редуктор используется с комбинированными редукторами и получает только фрагмент состояния таймеров, представляющий собой массив объектов.

export default function(state = initialState, action) {
    switch(action.type) {
        case AppConstants.ADD_TIMER:
            let newState = [...state, action.timer];
            return newState
        case AppConstants.UPDATE_TIMER:
            newState = state.map((timer, index) => {
                if(index == action.timerID) {
                    const updatedTimer = {
                        ...timer,
                        elapsed: action.elapsed
                    }
                    return updatedTimer
                }
                return timer
            });
            return newState
        case AppConstants.UPDATE_ALL_TIMERS:
            newState = state.map((timer, index) => {
                return action.timers[index]
            });
            return newState
        default:
            return state
    }
}

1 ответ

  1. Вы можете опубликовать свой компонент ?

    Обычно, когда состояние хранилища в порядке и хорошо обновляется, но компонент не перерисовывает его из-за глубоких вложенных сопоставленных свойств.

    react-redux не выполняйте глубокие проверки, чтобы проверить, изменилось ли значение на глубоких вложенных сопоставленных объектах