[英]How to iterate over array of objects and change property in redux?
我的狀態如下:
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屬性?
謝謝大家的關注!
您可以在刪除一項后映射到結果數組,如下所示:
return {
...state,
items: [
...state.items.slice(0,action.index),
...state.items.slice(action.index + 1),
].map((item, index) => ({ ...item, id: index }))
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.