例如,如果一个州是这样的
state={
reports:[{name:'nadib',age:23},{name:'nadib2',age:24}]
}
如何使用setState方法将nadib2
更改为john?
答案 0 :(得分:0)
您可以使用functional setState
语法并使用map
创建一个副本,以防止当前状态发生变化。
然后在循环中,如果不想修改,则返回原始对象。对于需要修改的对象,可以使用三元运算符找到它,然后复制所有现有键,可以选择修改其他键,如图所示。
this.setState(prevState => {
return {
reports : prevState.reports.map(item =>
item.name === 'nadib2' ? ({...item, name: 'john'}) : item)
};
});