如何在ReactJs的setState方法中访问数组的特定索引?

时间:2019-02-08 18:55:59

标签: javascript reactjs

例如,如果一个州是这样的

state={
   reports:[{name:'nadib',age:23},{name:'nadib2',age:24}]
}

如何使用setState方法将nadib2更改为john?

1 个答案:

答案 0 :(得分:0)

您可以使用functional setState语法并使用map创建一个副本,以防止当前状态发生变化。

然后在循环中,如果不想修改,则返回原始对象。对于需要修改的对象,可以使用三元运算符找到它,然后复制所有现有键,可以选择修改其他键,如图所示。

this.setState(prevState => {
   return { 
            reports : prevState.reports.map(item => 
                       item.name === 'nadib2' ? ({...item, name: 'john'}) : item) 
          };
});