【发布时间】:2019-07-03 01:31:22
【问题描述】:
例如,如果一个状态是这样的
state={
reports:[{name:'nadib',age:23},{name:'nadib2',age:24}]
}
如何使用 setState 方法将 nadib2 更改为 john?
【问题讨论】:
-
您尝试过哪些不起作用的方法?
标签: javascript reactjs
例如,如果一个状态是这样的
state={
reports:[{name:'nadib',age:23},{name:'nadib2',age:24}]
}
如何使用 setState 方法将 nadib2 更改为 john?
【问题讨论】:
标签: javascript reactjs
您可以使用functional setState 语法并使用map 创建一个副本,以防止当前状态发生突变。
然后在循环内部,如果您不想修改,则返回原始对象。对于您需要修改的对象,您可以使用三元运算符找到它并复制所有现有键,可选择修改其他键,如图所示。
this.setState(prevState => {
return {
reports : prevState.reports.map(item =>
item.name === 'nadib2' ? ({...item, name: 'john'}) : item)
};
});
【讨论】: