微信小程序 this.setData is not a function
2023-09-27 14:27:16 时间
在一般的函数中:
1 bindFaChange1: function (e) { 2 console.log('picker发送选择改变,携带值为', e.detail.value) 3 this.setData({ 4 index1: e.detail.value 5 }) 6 }
this.setData是正确的。
但当在函数中有个请求(wx.request)时:
1 formSubmit: function (e) { 2 wx.request({ 3 method: 'POST', 4 header: header, 5 url: url, 6 dataType: 'json', 7 success: function (res) { 8 this.setData({ 9 data1: true 10 }) 11 } 12 }) 13 }
或者执行定时任务时候:
1 var si = setInterval(function () { 2 that.setData({ 3 sendVerifyingCodeText: curCount + '秒后重新获取' 4 }); 5 that.setData({ 6 sendSmsCodeDisable: true 7 }); 8 curCount--; 9 if (curCount <= 0) { 10 that.setData({ 11 sendSmsCodeDisable: false 12 }), 13 clearInterval(si); 14 } 15 }, 1000);
这样会报错误:this.setData is not a function.
这个在新的函数内的this代表的是这个函数体,所有是没有this.setData。这个类似java中的this指的是当前对象,但是javascript是以函数为主体的,所以就是this在函数内部就当前函数。修改未:
解决方法就是 :在请求(wx.request)或者新的非当前js的方法外面添加:var that=this;然后用:
1 that.setData({ 2 data1: true 3 })
相关文章
- 基于微信小程序的英语单词记忆系统的设计与实现_kaic
- 微信小程序-wx:for 循环列表
- 精品微信小程序ssm的流浪动物|宠物救助网站+后台前后分离VUE
- 微信小程序挂号预约系统+后台管理系统
- 第73天: itchat 微信机器人简介
- 微信小程序提交审核并发布详细流程
- Spring Boot 实现微信扫码登录,真香。。
- 微信小程序在线医生答疑+后台管理系统|前后分离VUE
- 《微信小程序商城开发实战》笔者的新书,欢迎各位粉丝上京东购买
- 微信小程序,联系客服
- 微信小程序的基本认识
- 微信小程序如何修改本地缓存key中的单个数据
- 微信公众平台开发教程--自定义菜单
- 微信小程序进行地图导航使用地图功能
- 微信小程序测试指南
- 微信小程序navigator页面跳转失效原因
- 新手尝试编写微信小程序(3)——我的第一个微信小程序
- cocos creator制作微信抖音小游戏《黄金矿工》
- 微信小程序开发
- 微信小程序 获取session_key和openid
- 微信小程序-一个跑步app
- 微信小程序滑动删除功能,没有组件自己撸了个Demo
- vue 关闭微信浏览器(返回路由为undefined时)