我有一个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。