这是链接: https ://codesandbox.io/s/heuristic-heisenberg-9cxb9
我有这个方法:deleteItem
这段代码:
return {
monsters: prevState.monsters
.slice(0, deleteItemPosition)
.concat(
prevState.monsters.slice(
deleteItemPosition + 1,
prevState.monsters.length
)
)
};
这是我用来从位置 deleteItemPosition 上的数组中删除项目的代码,因为由于不可变性,我不能使用monsters.splice(deleteItemPosition, 1)。
那么为什么我的怪物数组从 deleteItemPosition 到最后被切断了呢?自己试试,在“要删除的索引”中输入一些数字 0-5
如果我更新线路
let deleteItemPosition = this.state.deleteItemPosition;
我把它硬编码成,比如说
let deleteItemPosition = 3;
然后我注意到位置 3 上的项目被删除了,正如我想要的那样。