Page({
data: {
test:{ a:1, b:2 }
},
onLoad: function (options) {
let t=this.data.test;
t.b=3
},
})
为什么AppData(下图) test里的b是3?
这是什么原因, 望告知~
结贴:这是我要的
Page({ data: { test:{ a:1, b:2 } }, onLoad: function (options) { let t= this .data.test, k = JSON.parse(JSON.stringify(t)) k.b=3 console.log(t,k) }, }) |
网友回复
Y:
加载后你data里面你设置修改data.b=3了他就打印3
G-STEPS街舞工作室:
可以直接设置 this.data 的值,只是如果不调用 setData 方法,数据改变了页面不会刷新
Vagrant:
结贴:无满意回答 ,执行数组拷贝,单独赋值 即可实现操作t变量且不影响data 数据
鲤子:
浅拷贝跟深拷贝的问题
星星海:
没函数的话试试这个JSON.parse(JSON.stringify(XXXX))