Вопрос по reducers, redux – Почему мой редуктор Redux считает, что мое состояние не определено?

7

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

Ошибка: редуктор addReport возвратил неопределенное значение во время инициализации. Если состояние, переданное редуктору, не определено, вы должны явно вернуть исходное состояние. Начальное состояние не может быть неопределенным.

А вот мой редуктор addReport:

const addReport = (state = [], action) =>
{
  console.log(state)
  switch (action.type) {
    case ADD_NEW_REPORT:
    return [...state,
      addReports(undefined, action)
    ]
    }
}

Я добавил оператор регистрации и могу убедиться, что он возвращает пустой массив. Даже установка состояния на что-то вроде 1 даст те же результаты. Что мне не хватает?

Ваш Ответ

1   ответ
15

Вы скучаете поdefault корпуса выключателя.

default: {
  return {
    ...state
  }
}

Redux не будет играть как хороший ребенок, если вы забудете это сделать!

Или, в качестве альтернативы, вы можете явно вернуть в конце начальное состояние:If the state passed to the reducer is undefined, you must explicitly return the initial state.

Интересно, что этот ответ помог мне, потому что я устанавливал объект, но возвращал просто «состояние» по умолчанию. Я не знал, что вам нужно отправить состояние по умолчанию в том же формате, что и исходное состояние. Похоже, что это не тот случай, если начальное состояние представляет собой массив или строку и т. Д. Matt Saunders

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