首页 > 解决方案 > 如何在 ReactJs 的 setState 方法中访问数组的特定索引?

问题描述

例如,如果一个状态是这样的

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

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

标签: javascriptreactjs

解决方案


您可以使用该functional setState语法并使用创建副本map来防止当前状态的突变。

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

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

推荐阅读