最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
微信小程序 this和that详解及简单实例
时间:2017-04-05 编辑:简简单单 来源:一聚教程网
微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报undefiend。原因是,在javascript中,this代表着当前对象,会随着程序的执行过程中的上下文改变,在wx.request({});方法的回调函数中,对象已经发生改变,所以已经不是wx.request({});方法对象了,data属性也不存在了。官方的解决办法是,复制一份当前的对象,如下:
varthat=this;//把this对象复制到临时变量that
在success回调函数中使用that.data就能获取到数据了。
不过,还有另外一种方式,也很特别,是将success回调函数换一种声明方式,如下:
代码如下 | 复制代码 |
success: res =>{ this.setData({ loadingHidden:true, hideCommitSuccessToast:false }) } |
在这种方式下,this可以直接使用,完全可以获取到data数据。
再给一个完整的例子:
代码如下 | 复制代码 |
success: res => { if(res.data.code != 0) { // 提交失败 this.setData({ loadingHidden:true, hiddenTips:false, tipsContent: res.data.message }) }else{ // 提交成功 this.setData({ loadingHidden:true, hideCommitSuccessToast:false }) subBtn =false;
// 定时,3秒消失 setTimeout(() => { this.setData({ hideCommitSuccessToast:true }) wx.navigateBack({ delta: 2 }); }, 2000);
} } |
-
下一个: 华为P10和华为p9参数对比
相关文章
- sora软件价格介绍 02-22
- sora官网入口地址一览 02-22
- Sora生成的视频使用教程 02-22
- 《梦幻西游》元宵灯谜线索答案大全2024 02-22
- 《原神》有朋自远方来第一天通关攻略 02-22
- 《苏醒之路》四个结局达成攻略 02-22