问题模块 | 框架类型 | 问题类型 | 终端类型 | 微信版本 | 基础库版本 |
---|---|---|---|---|---|
框架 | 小程序 | 需求 | 工具 | 6.6.7 | 2.1.3 |
如果data中有对象或者数组,该如何setData?
比如:
Page({
data: {
m_obj: {'a': {'num': 0}, ...},
}
click: function() {
let obj = this.data.m_obj; // A
/***modify obj***/ // B
this.setData({
m_obj: obj, // C
});
}
})
我想整体替换obj变量,上述代码是否有问题? 官方文档中说不能直接操作data中的变量,否则会造成数据不一致,那么上述代码中的A和B是否就会造成代码不一致?如果是的话,我该如何修改整个对象呢(整体替换而不是对每个属性set一次)?
网友回复
卢霄霄:
给 this.data赋值之后,立即有setData是不会有问题的
望记:
官方说的应该是不直接修改 this.data,用setData应该没啥问题吧