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

chu*_*nce 8 reducers redux

我相信我正在复制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)
    ]
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Elo*_*pos 17

你错过default了开关盒的情况.

default: {
  return {
    ...state
  }
}
Run Code Online (Sandbox Code Playgroud)

如果你忘了这么做,Redux就不会像一个好孩子一样玩耍!

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