我有下面的代码,我想更新id为1的对象中的name属性。我用代码objArray[1].name = "Xxx"
更新。它完美地工作,但这是正确的吗?我应该使用prevState和setObjArray吗?你认为这看起来容易得多?
const [objArray, setObjArray] = useState([
{
id:1,
name:"Eren"
},
{
id:2,
name:"Eren2"
},
{
id:3,
name:"Eren3"
}
])
2条答案
按热度按时间uz75evzq1#
不,这是不可取的。您有useState第二个数组元素(setObjArray)用于更新状态。请阅读React useState的文档。有两种基本方法,但没有太大区别。第一种方法;
第二种方法;
希望这个有用。
ee7vknir2#
有很多方法可以做到这一点。让我分享一种方法:
1.创建阵列的浅拷贝
1.创建要变异的元素的浅副本
1.更新您感兴趣的属性
1.把它放回数组中。注意:我们在这里改变了数组,但这就是为什么我们先做了一个副本
1.将状态设置为新副本