背景:点击列表某一项编辑,打开编辑弹窗,列表数据传递给弹窗组件,编辑该项内容,弹窗编辑的时候后面列表的数据也会跟着变
在这里插入图片描述
原因:当列表项传递数据给弹窗时,传递的是对象是一个复杂的数据类型,复杂数据直接赋值是赋值的引用,b=a相当于 b和a指向了统一内存,改变a,b也跟着变了,所以要多开辟一个内存,只是两个内存里的值一样
this.a={…this.b}
在这里插入图片描述
方式一原理:把复杂类型先转成字符串 字符串复制没有引用问题 然后再转过来(深度克隆,把值复制过去 不复制引用,相当于拷贝一份一样的值 但是值没联系)
方式二原理:es6解构赋值写法(把复杂类型的对象里的属性是简单类型的 一个个复制属性过去)如果对象里只有简单类型 没有复杂类型用解构赋值即可

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐