Page({
data: {
list: [{
'A': 11,
'B': 12
},
{
'A': 21,
'B': 22
},
{
'A': 31,
'B': 32
},
{
'A': 41,
'B': 42
}
],
A: 0
},
onLoad: function(options) {
var that = this
console.log("111")
console.log(this.data.list)
setTimeout(function() {
console.log("设值")
var str='list[0].A'
that.setData({
[str]: 2
}, function() {
console.log("设值完成")
console.log(that.data.list)
})
}, 1000)
console.log("222")
console.log(this.data.list)
}
})
为什么我加了延迟 111和222后的list[0].A还是2 这个时候都还没有执行setData
微信小程序开发问题解答
微信小程序开发者回答:
单独打印一下试试console.log(this.data.list[0].A)
微信小程序开发者回答:
不好意思,刚看错了 单独打印list[0].A的结果是正确的 但是打印list是就不对 这是为什么
微信小程序开发者回答:
确定?
微信小程序开发者回答:
是的 我刚试了
微信小程序开发者回答:
list指向的是内存地址,不管你怎么改,list总是指向那个地址
微信小程序开发者回答:
但是 setData不是都没有执行吗? 值为什么会变
微信小程序开发者回答: https://mp.weixin.qq.com/s/M4VHzOV5ClgW8pEl5ragJQundefinedundefined
微信小程序开发者回答:
打印信息第一行就是运行时的,展开后是真实的,跟console的运行机制有关,可看成懒加载的行为吧
本文网址:http://www.91bianli.com/weixinxiaochengxu/45327.html