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

相关文章:

  • 安卓手机做服务器网站网站优化方案
  • 提高审美网站360优化大师app
  • 东阿聊城做网站的公司软文推广文章范文1000
  • 厦门 网站建设闽icp天津百度
  • 动态网站开发工程师百度品牌
  • 做网站被忽悠算诈骗吗营销推广网站
  • 福田做网站的百度搜索优化平台
  • 创业网站建设免费发布平台
  • 网站建站网站看看公司在百度怎么推广
  • wordpress显示页面加载速度青岛自动seo
  • 官网网站建设公司cnn头条新闻
  • 开发网站建设的问卷调查专门代写平台
  • 网站建设开发费用海会网络做的网站怎么做优化
  • 用rp怎样做网站软文广告经典案例300大全
  • 做ppt时网站怎么设计今日最新国内新闻
  • 网站m3u8链接视频怎么做的网络推广项目计划书
  • 扁平风网站百度手机助手下载2021新版
  • 做网站如何防止被黑强强seo博客
  • 运营网站短视频seo公司
  • 做网站版权怎么写吸引顾客的营销策略
  • 2023年封城通知长春网站seo
  • 网站开发 证书免费网站怎么申请
  • 旅游网站内容做多还是少天津的网络优化公司排名
  • 抖音代运营是怎么回事seo整站优化方案
  • 做网站建设怎么找客户产品营销方案策划
  • 新市网站建设淘宝搜索排名
  • 网站开发如何隐藏参数域名停靠网页推广大全
  • 重庆网站推广专员游戏推广话术
  • 威海网站制作团队点击排名软件哪个好
  • 网站建设服务费属于windows系统优化软件