• 微信小程序 this和that详解及简单实例


    微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报undefiend。原因是,在javascript中,this代表着当前对象,会随着程序的执行过程中的上下文改变,在wx.request({});方法的回调函数中,对象已经发生改变,所以已经不是wx.request({});方法对象了,data属性也不存在了。官方的解决办法是,复制一份当前的对象,如下:

    1
    var that=this;//把this对象复制到临时变量that

    在success回调函数中使用that.data就能获取到数据了。

    不过,还有另外一种方式,也很特别,是将success回调函数换一种声明方式,如下:

    1
    2
    3
    4
    5
    6
    success: res =>{
      this.setData({
          loadingHidden: true,
          hideCommitSuccessToast: false
      })
    }

    在这种方式下,this可以直接使用,完全可以获取到data数据。

    再给一个完整的例子:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    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);
     
      }
     }
  • 相关阅读:
    看了一些Tab标签的效果,正好在学习前端,自己动手也写个把~
    js时间的操作,为了让cookie在当天24点过期~
    《转载》CSS换行问题
    【PHP项目】form表单的enctype属性
    php中处理字符串的常见函数
    PHP加密函数
    PHP判断时关于null,0,true,flase的值
    获取PHP页面的当前文件名(包括后缀名)
    php中关于empty()函数是否为真的判断
    【PHP】判断变量是否为控
  • 原文地址:https://www.cnblogs.com/kenshinobiy/p/9122756.html
Copyright © 2020-2023  润新知