Javascript 状态变量发生不可预测的变化-ReactJS
我是React的新手。我需要一些帮助来解决这个问题 代码:Javascript 状态变量发生不可预测的变化-ReactJS,javascript,arrays,Javascript,Arrays,我是React的新手。我需要一些帮助来解决这个问题 代码: this.state={ 测试状态:{ 测试阵列:[ {name:“bob”}, {姓名:“爱丽丝”}, {姓名:“约翰”} ] } } testFn=()=>{ 让我们一起来; a={…this.state.testState};//使用扩展运算符复制对象而不是引用 a、 testArray.map((obj)=>{ obj.name=“反应太棒了” }) log(this.state.testState) }spread操作符只进行
this.state={
测试状态:{
测试阵列:[
{name:“bob”},
{姓名:“爱丽丝”},
{姓名:“约翰”}
]
}
}
testFn=()=>{
让我们一起来;
a={…this.state.testState};//使用扩展运算符复制对象而不是引用
a、 testArray.map((obj)=>{
obj.name=“反应太棒了”
})
log(this.state.testState)
}
spread操作符只进行浅拷贝
要保证完整的对象拷贝,请使用
const copiedState=JSON.parse(JSON.stringify(yourState))
更好的解决方案
从源头上解决它。不要做深度状态,它实际上是在状态中编写对象的关键部分。你应该把它们放得很浅。在本例中,您已经对Obj->Array->Obj进行了深入的研究。与问题无关,但您也在使用
.map()
进行简单迭代,而不使用其返回值。对于简单的迭代,您可以使用.forEach
,它是为这类事情而构建的