当前位置: 首页 > news >正文

网站建设教程学校免费自助建站系统大全

网站建设教程学校,免费自助建站系统大全,小型培训机构网站开发毕业设计,东莞网站关键字前言 最近在开发微信小程序时不时会遇到一个很奇怪的问题,有些情况下用 this.setData 可以改变视图显示,有些情况下使用 this.setData 无效,这又是为什么呢? 问题描述 在解释这个问题前,我们先来看两段代码&#xff1…

前言

最近在开发微信小程序时不时会遇到一个很奇怪的问题,有些情况下用 this.setData 可以改变视图显示,有些情况下使用 this.setData 无效,这又是为什么呢?


问题描述

在解释这个问题前,我们先来看两段代码:

第一段代码(错误写法)

initOn() {wx.request({url: "接口地址",success: function (res) {this.setData({objs: res.data.map.gdtzxx,});},});
},

第二段代码(正确写法)

initOn() {let that = this;wx.request({url: "接口地址",success: function (res) {that.setData({objs: res.data.map.gdtzxx,});},});
},

通过对比上面的代码我们发现,两者唯一的区别就是在 this 的使用上,第一个是直接使用 this 调用,另一个则是通过 let that = this,使用 that 来保存当前的 this 的状态才可以更新视图。虽然看似最终的目的是一致的,但是当你运行时,第一种写法就会报如下图的错误:

在这里插入图片描述


原因分析

这是因为 this 作用域指向的问题,success 函数实际是一个闭包 , 无法直接通过 thissetData,故就会报错。

但是在 es6 中,使用了箭头函数是不存在这个问题的。原因是因为当我们使用箭头函数时,函数体内的 this 对象,就是定义时所在的对象,而不是使用时所在的对象。并不是因为箭头函数内部有绑定 this 的机制,实际原因是箭头函数根本没有自己的 this,它的 this 是继承外面的,因此内部的 this 就是外层代码块的 this

es6 箭头函数写法

initOn() {wx.request({url: "接口地址",success: (res) => {this.setData({objs: res.data.map.gdtzxx,});},});
},
http://www.yayakq.cn/news/83193/

相关文章:

  • 网站建设相关制度网站建设公司业务提成多少
  • 网站免费正能量软件不良宣传策划方案模板
  • 女生做网站编辑好不好可以做ppt的网站有哪些方面
  • 麻涌镇网站仿做php网站开发主要做什么
  • 网站建设专业吗广告公司怎么做业务
  • h5网站作用营销型公司网站
  • 网站营销的定义企业名录2020企业黄页
  • 工商银行建设银行招商银行网站天津网站优化公司电话
  • 建设银行英文网站破解wordpress
  • 做旅游网站的数据怎么来外贸联系网站
  • 石家庄物流网站建设wordpress 外部链接插件
  • 贵州建设监督管理局网站设计logo的软件有哪些
  • 域名注册了如何做网站网站积分的作用
  • 域名 就一个网站六安杂谈
  • 给客户做非法网站山东省住房和城乡建设厅二建查询
  • 上海网站建设定制公司具有价值的建网站
  • 如何做网站导航栏wordpress摘要字数的插件
  • 常德政务网站赤峰建网站的电话
  • 企业年报查询网站北京外包公司有哪些
  • 织梦万网网站搬家教程wordpress 友链
  • 湖北建设网官方网站网站套程序
  • 1g内存的服务器可以建设几个网站网络营销的名词解释是什么
  • 如何建设门户网站盈佳国际天天做赢家网站
  • 商务网站如何推广免费优化网站的软件
  • 中国建设银行信用卡旅游卡服务网站榆社网站建设
  • 医院网站内链优化wordpress模板 古典
  • 网站死链接怎么提交wordpress安装不成功
  • 北京网站建设公司案例网站怎么做sem优化
  • 表情包做旧网站500网站建设
  • 城乡住房和城乡建设厅网站网络营销软文范例300