Redux使用一组对象更新状态

时间:2017-09-27 06:05:45

标签: react-native redux react-redux

我有这样的州:

this.state ={
  photos: [
    { description: 'someDescription', id: 1 },
    { description: 'someDescription', id: 2 },
    { description: 'someDescription', id: 3 }
  ]
}

如何更新其中一个说明? 或者我必须做类似

的事情
this.setState({ photos: newArrayOfObjectsWithOnlyOneUpdatedDescription })

2 个答案:

答案 0 :(得分:1)

您可以为此创建一个功能:

const updatePhoto = (id, desc) => 
    this.state.photos.map((obj) => 
    obj.id === id ? Object.assign(obj, { description: desc }) : obj)

map函数将返回一个新数组,因此您不需要进行手动状态克隆。

然后根据需要重复使用它:

this.setState({ photos: updatePhoto(2, 'new desc') })

答案 1 :(得分:0)

您可以创建状态副本,然后更新复制状态和setState

deadlock