,所以我有一系列的毒品。当我删除todo时,我正在尝试更改其余项目的ID即使应该是1。
,项目也将具有2个ID这就是我目前拥有的 -
case REMOVE_TODO: {
const newList = state.todos.filter(item => item.id !== action.id);
for (let i = 0, newId = 0; i > newList.length; i++, newId++) {
newList[i].id = newId;
console.log(newList[i].id); //nothing gets logged
}
return {
...state,
todos: newList
};
}
而不是正确更改项目ID,即使我安装了我刚刚更改的内容,也没有发生任何改变,也什么也没有改变。
在for循环中的迭代器看起来像是一个问题。i > newList.length
应为i < newList.length
。另外,您可以使用地图在新清单上循环并获得一组较新的数组。
您无需loop
即可。当您有大量数据时,这将是一个很好的做法。
const index = state.todos.findIndex(item => item.id == action.id);
const newList = state.todos.splice(index,1);
return {
...state,
todos: newList
};