微信小程序诡异错误this.setData报错

先说原因:

function声明的函数和箭头函数的作用域不同,这是一个不小心坑的地方。可参考箭头函数说明:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

所以对于这个结果,还是换回es5的function函数去写最好了。

箭头函数和function的区别:

箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象

箭头函数不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误

箭头函数不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替,不可以使用yield命令,因此箭头函数不能用作Generator函数。

这么写会报错

thirdScriptError
this.setData is not a function;at pages/index/index onLoad function;at api getSystemInfo success callback function
TypeError: this.setData is not a function

onLoad: function () {
    wx.getSystemInfo({
      success: function (res) {
        this.setData({
          lang: res.language

        })
        console.log(res.language)
      }
    })

这么改一下就不报错了。

 1 onLoad: function () {
 2 wx.getSystemInfo({
 3 success: (res) => {
 4 this.setData({ 箭头函数的this始终指向函数定义时的this
 5 lang: res.language
 6
 7 })
 8 console.log(res.language)
 9 }
10 })

或者这样:

 onLoad: function () {
    var that=this;
    wx.getSystemInfo({
      success: function (res) {
        that.setData({
          lang: res.language

        })
        console.log(res.language)
      }
    })

原文地址:https://www.cnblogs.com/jjkv3/p/11371609.html

时间: 2024-11-06 03:36:27

微信小程序诡异错误this.setData报错的相关文章

(uniapp和)微信小程序页面跳转首页报错:navigateTo:fail can not navigateTo a tabbar page

如果在这种情况下无法实现跳转并出现can not navigate to tabBar page错误, 很有可能是由于在底部tabbar里面定义乐同样连接地址的bar,如果在底部footer页面定义了相同地址的bar,则此页面无法跳转, 解决方法: 使用uniapp或微信小程序的 uni.switchTab({         url: '路径'}); wx.switchTab({         url: '路径'}); 原文地址:https://www.cnblogs.com/fanqiuz

微信小程序-解决下拉刷新报错

关于"enablePullDownRefresh": "true" 一.使用方式 在 Page 中定义 onPullDownRefresh 处理函数,监听该页面用户下拉刷新事件.需要在 config 的window选项中开启 enablePullDownRefresh.当处理完数据刷新后,wx.stopPullDownRefresh可以停止当前页面的下拉刷新. 二.错误处理 在代码中出现的报错如下: 变量值"true",这是个字符串而不是Bool

微信小程序常见错误及基本排除方法

也接触了不少人解决问题的过程里,有一些比较难以排查的可能性列举在这,方便大家看一下: 也欢迎大家把自己常用的排除方法列举在这,一起互相学习探讨! 1:ES6:使用es6可能导致安卓端真机调试时很多问题出现,还有其他未知问题:原因未知: 2:字母拼错,包括字母拼写错误,大小写没有注意:微信小程序中,有大量这样的代码示例,从中间冒出一个大写,比如支付中的appId 3:官方文档示例代码有误,有时官方文档示例代码也会出现问题,比如大小写出错,或者其他缺少参数等问题: 4:https,这个坑目前遇到的人

解决CocosCreator 在微信小游戏中使用Socket.io 报错的问题

最近微信小游戏比较火,准备试着做一个Demo来玩一玩,网络通信这块就选择了socket.io,打包成微信工程,编译出现如下错误: 对于我这种菜逼(就目前的情况,自我感觉是挺菜的)来说,第一个想到的事情就是百度,百度不行,然后就谷歌,发现在cocos中文社区里面有很多人提到了这个问题,但是没有人回答,谷歌发现有大神重写了一套能够在微信小程序中使用的socket.io.emma..这些对于我来说,感觉太麻烦了,百度,谷歌无果,在回过头来仔细看看这个错误.提示io没有找到,竟然io没有找到,那我就给他

微信小程序使用本地ip调试时报错解决方法

在微信小程序项目开发时,会用到本地调试,报错如下: 解决方法: 1.单击设置->项目设置 2.勾选该项即可. 原文地址:https://www.cnblogs.com/xindekaishi/p/12700768.html

小程序 iOS 打开文档报错 “OfficeImportErrorDomain error 912”

iOS 不能打开 `.doc` `.xls` `.ppt` 类型的文档 Android 皆可 微信官方论坛上某人的回复: 微信小程序的 接口wx.openDocument 支持打开office相关文件, 但是 IOS端不支持旧版 97-2003版的格式, 需要打开office文件的统一上传新版pptx, docx, xlsx格式的文件, 不要用ppt, doc, 和xls 原文地址:https://www.cnblogs.com/yier0705/p/10066884.html

微信小程序云开发导入json数据报错:导入数据库失败, Error: Poll error, 导入数据任务(id:528440)异常,错误信息:line 1, column 750: bare " in non-quoted-field

错误信息如下: 导入数据库失败, Error: Poll error, 导入数据任务(id:528440)异常,错误信息:line 1, column 750: bare " in non-quoted-field 导入数据库失败, Error: Poll error, 导入数据任务(id:528445)异常,错误信息:解析json文档错误,请检查导入文件格式,错误详情如下:invalid character ',' looking for beginning of value 导入JSON格式

微信小程序,错误{"errMsg":"request:fail 小程序要求的 TLS 版本必须大于等于 1.2"}

解决方法一: 开发环境,项目--->勾选不校验即可 解决办法二: 在 PowerShell中运行以下内容, 然后重启服务器 # Enables TLS 1.2 on windows Server 2008 R2 and Windows 7 # These keys do not exist so they need to be created prior to setting values. md "HKLM:\SYSTEM\CurrentControlSet\Control\Securi

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教