簡體   English   中英

如何遍歷對象數組並更改Redux中的屬性?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM