小程序this.setData修改数据之后,data中其他数据也跟着一起改变了

问题描述:

小程序js文件中,在data中定义两个数据,settingData和defaultSettingData都是空对象,如图

在页面初始化时,就为两个数据赋值

 之后,我去单独修改settingData的时候,defaultSettingData也跟着一起改变了,并且和settingData一模一样。

 解决:

原来问题在于初始化赋值时,我为两个数据赋得同一个值,导致两个对象只是指向了同一个对象,只是一次浅拷贝,不论修改哪个,另一个都会跟着一起变。

所以,最后解决的办法就是把其中一个数据进行深拷贝,这样不论如何修改,都不会相互影响了。

小程序可以使用es6的展开运算符,可以实现数据的分离。当然也可以使用JSON.stringify和JSON.parse(如果可以的话)。

最后,我改变了defaultSettingData的拷贝方式,就成功了。

 这种将一份数据同时保存成两份的情况也比较少见,暂且记录一下吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值