从Array.map()中的Switch语句返回

时间:2019-07-18 13:31:28

标签: javascript reactjs redux

我有一个reducer,可以从一个动作中获取对象数组。在这些对象中,其键之一是id。我使用Array.map()遍历化简器中的此数组,并使用switch语句,在该语句中,根据对象的ID对状态中的数组中的对象进行分类。问题是我的switch语句不返回任何内容,而是返回默认情况(初始状态)。

动作创建者

export const categorizeArrays = arr1 => ({
  type: Types.CATEGORIZE_FAV_ARRAYS,
  arr1
})

减速器

export default function favReducer(state = FAV_STATE, action) {
  switch (action.type) {
    case Types.CATEGORIZE_FAV_ARRAYS:

      action.arr1.map(item => {

        switch (item.id) {
          case 28:
            return {
              ...state,
              newArr1: [...state.newArr1, item]
            }

           default:
            return state
        }

状态

export const FAVORITES_STATE = {
  newArr1: [],
  newArr2: [],
}

我在控制台或TypeScript(我使用的)中没有看到错误或警告,但出于简单原因未包含在示例中。另外,我肯定会希望有更好的结构建议,因为我不确定每次迭代数组(可以有成百上千个对象)是一个好主意。

编辑

我认为问题在于map()内的开关中的每种情况都不会返回任何内容。在map()函数内部或每个case:内部登录,我得到正确的对象和正确的ID。

0 个答案:

没有答案