- 开发无止境 -
Data: 2020-04-06 21:03:48Form: JournalClick: 11
问题描述:
小程序js文件中,在data中定义两个数据,settingData和defaultSettingData都是空对象,如图
在页面初始化时,就为两个数据赋值
之后,我去单独修改settingData的时候,defaultSettingData也跟着一起改变了,并且和settingData一模一样。
解决:
原来问题在于初始化赋值时,我为两个数据赋得同一个值,导致两个对象只是指向了同一个对象,只是一次浅拷贝,不论修改哪个,另一个都会跟着一起变。
所以,最后解决的办法就是把其中一个数据进行深拷贝,这样不论如何修改,都不会相互影响了。
小程序可以使用es6的展开运算符,可以实现数据的分离。当然也可以使用JSON.stringify和JSON.parse(如果可以的话)。
最后,我改变了defaultSettingData的拷贝方式,就成功了。
这种将一份数据同时保存成两份的情况也比较少见,暂且记录一下吧!