我的状态为以下阵列:
state:{
items:[{id:0},{id:1},{id:2},{id:3}]
}
我能够做到这一点: 我可以删除其中一个对象,例如,第二个,数组将如下所示:
items:[{id:0},{id:2},{id:3}]
我想做什么(需要帮助)
我想遍历数组并将id相等地设置为其在数组中的索引位置,以使其变为:
items:[{id:0},{id:1},{id:2}]
因此,具有ID:2和Id:3的对象将根据其新的索引位置分别设置为Id:1和Id:2。
我该如何实现?
我在reducer中使用以下代码删除所需的对象:
if(action.type==='deleteItem'){
return{
...state,
items:[
...state.items.slice(0,action.index),
...state.items.slice(action.index+1),
]
}
}
我如何实现它,以根据其新索引位置更改数组中每个对象的Id属性?
谢谢大家的关注!
答案 0 :(得分:2)
您可以在删除一项后映射到结果数组,如下所示:
return {
...state,
items: [
...state.items.slice(0,action.index),
...state.items.slice(action.index + 1),
].map((item, index) => ({ ...item, id: index }))
}