微信小程序中,在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);
  }
 }

微信小程序 this和that详解及简单实例相关推荐

  1. 微信小程序02【配置详解、生命周期-app对象使用、页面跳转详解】

    学习地址:https://www.bilibili.com/video/BV1sx411z77P 笔记01:https://blog.csdn.net/weixin_44949135/article/ ...

  2. 微信小程序框架(二)-全面详解(学习总结---从入门到深化)

    目录 组件_基础视图 容器 view 文本 text 图片 image 组件_滑块视图容器 基本实现 Swiper常用属性说明 组件_滚动视图区域 水平滚动 垂直滚动 常用属性 组件_icon 图标使 ...

  3. 微信小程序框架(四)-全面详解(学习总结---从入门到深化)

    目录 路由_navigateTo 页面跳转 携带参数 返回上一级页面 路由_redirectTo 页面跳转 路由_reLaunch 页面跳转 路由_switchTab 实现 tabbar 页面跳转 交 ...

  4. 新手微信小程序制作教程步骤详解!

    制作微信小程序方法: 1.在微信公众平台上申请一个小程序账号,申请完成之后需要进行微信认证,并且需要缴纳300元的认证费用.如果不缴纳300元的费用,微信小程序商城没有开通支付功能. 2.新建一个空白 ...

  5. 微信小程序按钮Button使用详解

    最近在出微信小程序系列教程 顺手写了点博客 欢迎大家关注 button 用来实现按钮点击效果,本文章效果如下: 1 wxml 文件中 在这里我就放了三个普通的按钮 <view class=&qu ...

  6. 微信小程序系列4——传值详解

    前言   在开发程序过程中,会遇到各种各样的传值的情景,例如:页面之间的传值.回调.代理.通知等.而在微信小程序中,传值的方式和Android和iOS的方式有一定的异同. 微信小程序使用的数据传值方式 ...

  7. 微信小程序html5音频,微信小程序 audio音频播放详解及实例

    loop:是否循环播放 id:标注唯一组件以this.audioCtx = wx.createAudioContext('myAudio')获取控制组件的对象. bindplay:播放时触发该事件 b ...

  8. 微信小程序(三)详解篇

    一.什么是小程序(了解) 小程序是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或者搜一下即可打开应用.也体现了"用完即走"的理念 ...

  9. 微信小程序上传文件详解

    做微信小程序难免会遇到上传文件的问题.今天就给大家说一个简单的上传文件的例子吧 wxml代码 <button bindtap="upload">上传文件</but ...

最新文章

  1. 交换机的VACL测试
  2. python 遍历文件 获取文件修改时间
  3. linux可以ping通,Linux可以Ping通但不能traceroute
  4. 转【微信小程序 四】二维码生成/扫描二维码
  5. 讯飞tts语音引擎9.0_使用科大讯飞语音转文字的服务进行电话录音分析
  6. ASCII码表 0~127
  7. 什么是依赖,什么是抽象
  8. Atom 扩展离线安装
  9. 9月1日学习内容整理:装饰器带参数,装饰器嵌套
  10. useradd/adduser 添加用户
  11. 使用jQuery高效制作网页特效 第六章习题
  12. 车路云一体化融合控制系统
  13. Java多线程编程 深入详解
  14. 回波损耗和电压驻波比
  15. 一个非常好用的批量图片压缩工具
  16. Good Luck in CET-4 Everybody!(博弈)
  17. SAP 玻璃原片单位问题处理
  18. 当你觉得一个人孤独的时候
  19. 超人气思维导图XMind新年新版本,这6个新功能你一定要看
  20. yum install clickhouse* 的一堆报错

热门文章

  1. VUE系列-Vue核心应用(二)
  2. 探索MicroPython(三)--基础操作示例
  3. 漫画解析Linux内核
  4. 最小生成树之迪杰斯特拉算法(Dijkstra算法)之单源最短路径
  5. 鸿蒙WLAN模组联网+解决在Visual Studio Code不能更改Linux文件的问题
  6. Spring AOP底层实现原理(动态代理)
  7. 二分法的计算机应用,二分法(数学领域术语)_百度百科
  8. Mysql怎么把8位数变成日期_SQL中如何将数字型转换为日期型
  9. imei 物联卡_物联卡设备信息判重(DoIotIsImeiExist)
  10. C++学习随笔之一:基础