小程序
小游戏
企业微信
微信支付
扫描小程序码分享
使用this.setData方法对对象赋值失败!改用this直接赋值可以,什么情况?哪位老哥解释一下
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
this指向的request.then这个函数内部不是全局的了,不能使用setData() 你在 request外面给this赋值 var that=this; 里面使用的时候用,that.setData({})
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
此this.oldUserInfo并不能渲染到wxml
--↓↓👍点击“有用”是回答的动力哦
图一:this.setData,应该用this.data.xxx访问。(只有data里面的变量, 才会影响视图)
图二:this.xxx这种方式,变量定义在了Page({})之外。(不会影响视图)
你这个问题很明显了,setData是异步的,导致你打印this.oldUserInfo的时候,还没赋值,所以是undifend,你可以尝试着this.setData({oldUserInfo:res},()=>{console.log(this.data.oldUserInfo)}) 应该就可以打印出来了
1.this.xx=x不会让视图层响应更新
2.this.setData是异步的
老哥,我也遇到这个问题了,怎么解决的,请教一下
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
this指向的request.then这个函数内部不是全局的了,不能使用setData() 你在 request外面给this赋值 var that=this; 里面使用的时候用,that.setData({})
此this.oldUserInfo并不能渲染到wxml
--↓↓👍点击“有用”是回答的动力哦
图一:this.setData,应该用this.data.xxx访问。(只有data里面的变量, 才会影响视图)
图二:this.xxx这种方式,变量定义在了Page({})之外。(不会影响视图)
你这个问题很明显了,setData是异步的,导致你打印this.oldUserInfo的时候,还没赋值,所以是undifend,你可以尝试着this.setData({oldUserInfo:res},()=>{console.log(this.data.oldUserInfo)}) 应该就可以打印出来了
1.this.xx=x不会让视图层响应更新
2.this.setData是异步的
老哥,我也遇到这个问题了,怎么解决的,请教一下