我有以下减速器:
case INIT:
return {
...state,
items: [...state.items, ...action.payload],
};
我需要某种方式检查state.items
数组中是否是来自action.payload数组的项,并且不要将它们包括在state.items
中。我有这样的代码:
[...state.items.filter(item => item !== action.payload)],
但这不是我所需要的,它不起作用。有人可以帮我吗?
答案 0 :(得分:2)
处理原始类型最简单的方法是使用Set
:
case INIT:
return {
...state,
items: [...new Set(state.items.concat(action.payload))],
}
答案 1 :(得分:0)
您应该过滤payload
。
case INIT:
const { items } = state;
const newItems = action.payload.filter(item => !items.includes(item))]
return {
...state,
items: items.concat(newItems),
}