React中对象数组的SetState

Sai*_*Dey 7 immutability setstate reactjs

好的,所以我很沮丧找到合适的解决方案,所以我在这里发布问题.给出答案对我有很大的帮助,因为我被困住了!

状态树看起来像这样

this.state = {
      itemList : [{
                    _id : 1234,
                   description : 'This the description',
                   amount : 100
                    }, {
                    _id : 1234,
                   description : 'This the description',
                   amount : 100
                    }],
     }
Run Code Online (Sandbox Code Playgroud)

问题是:

  1. 无法根据_id更新数组的Object中的任何特定键
  2. 以前的状态应该保持不变

Oma*_*mar 18

this.setState(prevState => ({
    itemList: prevState.itemList.map(
    obj => (obj._id === 1234 ? Object.assign(obj, { description: "New Description" }) : obj)
  )
}));
Run Code Online (Sandbox Code Playgroud)

这是您使用setState和prevstate更新数据结构中对象的某个属性的方法.