小程序
小游戏
企业微信
微信支付
扫描小程序码分享
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
this指向问题,
settimeout等定时器的this是指向 window 的
使用 let that = this 就行
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
这是写法问题,如果函数写成如下:
success: function(res) {}
这时候函数里面的this已经指定为函数本身,而函数没有那些方法和事件。对于这个有几种解决方法。
1.最外层定义一个变量并this赋值给他,函数里面直接用定义的变量即可。
let that = this; wx.cloud.callFunction({ success: function(res) { that.setData({}); } });
2. 对于this进行绑定。
wx.cloud.callFunction({ success: function(res) { this.setData({}); }.bind(this) });
3.写lambda表达式(匿名函数)写法。
wx.cloud.callFunction({ success: (res) => { this.setData({}); } });
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
this指向问题,
settimeout等定时器的this是指向 window 的
使用 let that = this 就行
这是写法问题,如果函数写成如下:
success: function(res) {}
这时候函数里面的this已经指定为函数本身,而函数没有那些方法和事件。对于这个有几种解决方法。
1.最外层定义一个变量并this赋值给他,函数里面直接用定义的变量即可。
let that = this; wx.cloud.callFunction({ success: function(res) { that.setData({}); } });
2. 对于this进行绑定。
wx.cloud.callFunction({ success: function(res) { this.setData({}); }.bind(this) });
3.写lambda表达式(匿名函数)写法。
wx.cloud.callFunction({ success: (res) => { this.setData({}); } });