簡體   English   中英

如何更新 id - 鍵值對的反應 redux state Object

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

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