为什么我的Redux减速器认为我的状态未定义?

时间:2016-06-24 14:32:38

标签: redux reducers

我相信我正在复制Todo教程几行,我收到了这个错误:

  

错误:Reducer“addReport”在初始化期间返回undefined。   如果传递给reducer的状态未定义,则必须明确   返回初始状态。初始状态可能不是未定义的。

这是我的addReport reducer:

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

我添加了logging语句,可以验证它是否返回一个空数组。即使将状态设置为1也会产生相同的结果。我错过了什么?

1 个答案:

答案 0 :(得分:16)

您错过了开关案例的default

default: {
  return {
    ...state
  }
}
如果你忘了这么做,Redux就不会像一个好孩子一样玩耍!

或者,您可以在结束时显式返回初始状态: If the state passed to the reducer is undefined, you must explicitly return the initial state.