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

发布时间 - 2026-01-10 23:01:49    点击率:

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

var that=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);

    }
   }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 微信小程序  # this和that详解  # 小程序  # this和that  # 微信小程序 UI与容器组件总结  # 微信小程序 支付功能开发错误总结  # 微信小程序 常用工具类详解及实例  # 微信小程序 基础知识css样式media标签  # 微信小程序 http请求封装详解及实例代码  # 微信小程序 弹幕功能简单实例  # 微信小程序 详解页面跳转与返回并回传数据  # 微信小程序 基础组件与导航组件详细介绍  # 微信小程序-获得用户输入内容  # 回调  # 会报  # 也不  # 就能  # 也很  # 希望能  # 在这种  # 可以直接  # 这个时候  # 谢谢大家  # 解决办法  # 再给  # 过程中  # 换一种  # setTimeout  # navigateBack  # javascript  # subBtn  # class  # pre 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 微信小程序制作网站有哪些,微信小程序需要做网站吗?  Laravel如何创建自定义Artisan命令?(代码示例)  怎么用AI帮你设计一套个性化的手机App图标?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  如何快速选择适合个人网站的云服务器配置?  如何在橙子建站上传落地页?操作指南详解  如何快速生成可下载的建站源码工具?  香港服务器如何优化才能显著提升网站加载速度?  EditPlus中的正则表达式实战(5)  Laravel如何为API编写文档_Laravel API文档生成与维护方法  高性能网站服务器配置指南:安全稳定与高效建站核心方案  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  如何在不使用负向后查找的情况下匹配特定条件前的换行符  在Oracle关闭情况下如何修改spfile的参数  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  zabbix利用python脚本发送报警邮件的方法  android nfc常用标签读取总结  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  如何在IIS7中新建站点?详细步骤解析  Java类加载基本过程详细介绍  HTML 中如何正确使用模板变量为元素的 name 属性赋值  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  如何在橙子建站中快速调整背景颜色?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  如何快速登录WAP自助建站平台?  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  高端云建站费用究竟需要多少预算?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  java获取注册ip实例  php json中文编码为null的解决办法  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  nginx修改上传文件大小限制的方法  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  如何在七牛云存储上搭建网站并设置自定义域名?  网站建设保证美观性,需要考虑的几点问题!  🚀拖拽式CMS建站能否实现高效与个性化并存?  如何确保西部建站助手FTP传输的安全性?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何将凡科建站内容保存为本地文件?  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  Laravel怎么使用artisan命令缓存配置和视图  如何做网站制作流程,*游戏网站怎么搭建?  如何用已有域名快速搭建网站?  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  制作电商网页,电商供应链怎么做?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  Laravel如何使用Blade组件和插槽?(Component代码示例)  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程