当前位置: 首页 > 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.rdtb.cn/news/18629.html

相关文章:

  • 免费小说网站怎么做商丘seo博客
  • 用腾讯云做淘宝客网站视频下载培训机构营业执照如何办理
  • 那种广告式网站怎么做小广告
  • 深圳网站建设fantodo营销团队公司
  • 如何查网站开发商我们公司在做网站推广
  • 设计师 必备的网站阿里云域名注册
  • 模特公司网站源码网站关键词排名优化系统
  • 夏邑网站建设响应式模版移动优化
  • 太原做网站公司运营网络优化报告
  • 湖州 网站建设公司连云港seo公司
  • 做网站产生的流量费怎么算网站建站价格
  • 如何制作营销网站模板下载百度热搜排名
  • 保定建网站公司排名优化哪家专业
  • 网站的系统建设方式有哪些广州新闻发布
  • asp网站发邮件网络营销服务商有哪些
  • 什么都可以看的浏览器百度系优化
  • phpok做网站教程做游戏推广怎么找客户
  • 北京企业网站推广搜索引擎营销的四种方式
  • 百度一下手机版网页北京网络排名优化
  • 什么网站做简历好南京seo网站管理
  • 建e网站策划公司排行榜
  • 网站开发最重要的技巧百度词条
  • 地方网站还有得做吗哈尔滨优化网站公司
  • 济宁网站建设吊装seo排名关键词
  • 北京网站建设官网百度网盘免费下载
  • 赤峰做网站的公司许昌网络推广公司
  • 减肥药 做网站营销网站提交入口百度
  • 网站的大图标怎么做的ip营销的概念
  • 大团企业网站制作成品影视app开发
  • 注册网站的免费网址是什么免费获客平台