我想在react上下文中使用setState更新array(object array)的特定对象的特定值!
这是我在做什么
getFieldData = (inputType, data, id) => {
const index = this.state.sharedPeople.findIndex(a => a.id == id);
this.setState({ sharedPeople: [this.state.sharedPeople[index], { email: data }] })}
无法通过执行此操作来更新值,它在这里会发生故障!!请指导我做这种行为的更好和正确的方法!
您可以map
旧数组并比较它的ids
,直到找到正确的数组为止。然后覆盖您想要spreading
原始对象的属性。否则,只需返回item
updateFoo = (id, value) =>{
this.setState(prev =>({
data : prev.data.map(item =>{
if(item.id === id) return {
...item,
foo : value
}
return item
})
}))
}