微信小程序一个设置data数据的坑
假如数据区是这样的:
data:{
array : [ ],
length: 0
}
length准备保存数组array的长度。
现在我想在页面第一次加载时初始化array和length
如果在页面加载方法这样写:
onLoad: function(e) {
var tArray = [ 1, 2, 3 ]
this.setData({
‘array’: tArray,
‘length’: this.data.array.length
})
}
这种做法是错误的!因为此时的array的值并没有改变,要等onLoad方法执行完array的值才会改变,所以此时调用array.length还是原始数据0。不要在意上段代码的合理性。
我们只需关注一个问题,就是不要在同一个函数里使用刚赋值的data数据去给另一个data数据赋值,因为赋值是异步的,是在函数末尾统一赋值且有效的。
所以可以在onLoad初始化array,在onReady利用array.length初始化length