使用setData 对对象赋值失败QAQ?
发布于 6 年前 作者 yuanlei 13441 次浏览 来自 问答

使用this.setData方法对对象赋值失败!改用this直接赋值可以,什么情况?哪位老哥解释一下

5 回复

this指向的request.then这个函数内部不是全局的了,不能使用setData() 你在 request外面给this赋值 var that=this; 里面使用的时候用,that.setData({})

图一:this.setData,应该用this.data.xxx访问。(只有data里面的变量, 才会影响视图)

图二:this.xxx这种方式,变量定义在了Page({})之外。(不会影响视图)

此this.oldUserInfo并不能渲染到wxml

--↓↓👍点击“有用”是回答的动力哦

你这个问题很明显了,setData是异步的,导致你打印this.oldUserInfo的时候,还没赋值,所以是undifend,你可以尝试着this.setData({oldUserInfo:res},()=>{console.log(this.data.oldUserInfo)}) 应该就可以打印出来了

1.this.xx=x不会让视图层响应更新

2.this.setData是异步的

回到顶部