我试图从状态中删除元素'通过使用过滤器功能,该功能应该从“状态”中删除元素。由' action.index'指定的索引处的数组。但是它会从“状态”中删除最后一个元素。数组,我似乎无法弄清楚它为什么要这样做。
/reducer.js
import {
ADD_ITEM,
DELETE_ITEM,
} from './actions';
export default function addItems(state=[], action){
switch (action.type) {
case ADD_ITEM:
return [
...state,
action.item
]
case DELETE_ITEM:
return state.filter((_, i) => i !== action.index);
default:
return state
}
}
修改
上面的代码运行正常,另一个文件中的问题是从数组中删除了最后一个元素。
答案 0 :(得分:1)
您可以使用splice
代替过滤器,这样可以更精确地删除特定索引处的项目。
return state.splice(action.index,1)
第二个参数'1'表示从action.index开始删除1个项目。