[英]How to update react redux state Object of id - key value pair
我的 redux state 中有一個變量,這似乎是一個 Object 的鍵作為 id 和值作為內容, ,如您所見,這個 state 變量,我們稱之為capacity
,不是數組或列表,而是一個普通的 object,我想增加一個 item 屬性availableCapacity
,使其成為我的動作有效負載中的值,所以這里是我可以做什么
const updatedCapacity = {
...state.capacity[id],
availableCapacity: state[id].availableCapacity + 1
};
我的updatedCapacity
看起來像
{
active: true
avaialbleCapacity: 31
capacity: "2febf..."
totalCapacityAvailable: 30
}
但是我怎么能通過 id 在我的 state 中找到元素,然后用我修改后的updatedCapacity
替換它? 我在下面嘗試過,但是相反,它在第一個示例中在我的 state.capacity 中添加了一個新條目,在第二個示例中,它添加了一個新的鍵值“id”條目,而不是我的“2febfxxxx”的確切 id...
case UPDATE_CAPACITY:
return {
...state.capacity,
updatedCapacity
}
or
case UPDATE_CAPACITY:
return {
...state.capacity,
id: { updatedCapacity }
}
為您正在更新的對象淺復制所有 state。 您可以將id
用作動態鍵。
case UPDATE_CAPACITY:
return {
...state, // <-- copy current state
[id]: {
...state[id], // <-- copy current element
availableCapacity: state[id].availableCapacity + 1 // <-- increment capacity
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.