我有这样的州:
this.state ={
photos: [
{ description: 'someDescription', id: 1 },
{ description: 'someDescription', id: 2 },
{ description: 'someDescription', id: 3 }
]
}
如何更新其中一个说明? 或者我必须做类似
的事情this.setState({ photos: newArrayOfObjectsWithOnlyOneUpdatedDescription })
答案 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