如何解决反应状态复制它的参考ES6方式也不起作用
我有一种方法,我使用ES6方式将反应状态复制到变量中,并将该变量传递给另一个函数,即使我尝试使用ES6方式,该更改也适用于该复制的变量,并且更改也适用于父变量>
saveComponent=async ()=>{
let {eId,component,jObj}=this.state;
let parentOptions=[];
component.options.map((o,i) => {
o.name = component.name;
return o;
});
jObj = this.addUpdate(eId,jObj);
parentOptions = this.treeRef.current.getParentOption(jObj);
await this.setState({jObj: jObj,component: this.getComponentObject(),parentOptions: parentOptions});
const sObj=[...this.state.jObj];
console.log(sObj === jObj);
console.log("return false but still jObj updating on change sObj");
this.treeRef.current.reset();
this.refPF.current.updateFormPreview(sObj);
}
如您所见
sObj === jObj return false
但是在 updateFormPreview 函数中更新sobj时,它仍在更新jObj不知道为什么
我的updateFormPreview函数在这里
updateFormPreview=(jsonObject)=> {
let form=[],jObject=[];
this.state.initObject=[...jsonObject];
form = this.expandArray([...jsonObject]);
form=this.setPostion(form);
jObject=this.setDefaulValue(form)
this.setState({jObject:jObject});
form = form.filter(e => e.parentId === "");
form=this.convertJson(form);
this.setState({form:form,cObject:form});
}
当我对调用函数 updateFormPreview 进行注释时,jObj未更新,这意味着仅该函数更新了jObj 请帮助我,谢谢!!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。