微信小程序项目中that和this的区别this.setData报错undefined解决方法
目录
微信小程序项目中that和this的区别(this.setData()报错undefined解决方法)
在编写获取用户信息进行登录的代码时,报了一个这样的错误
后面经过摸索,最终发现是this指向的问题!!!
现在我们来看看如何解决小程序中this指向问题以及that和this的区别
在微信小程序中,setData使用最频繁的接口,也是最容易引发性能问题的接口
在上面发生了’setData’ undefined,那么我们定位到问题代码段
this代表着当前对象,会随着程序的执行过程中的执行上下文改变
通常就是谁调用它,this就指向谁
打印this,看看它到底指向谁!!!
分别打印两个不同位置的this,看看它们分别指向什么
外部的this指向的是当前页面,内部的this为undefined
我们调用setData是要改变这个页面的data的值,所以这里用到的this是外部的this
如何修改this?
通过我们通过将外部this赋给that,来使用外部this即可,当然这里的that换成其他变量名都可以,只是大家经常用that来命名 !
箭头函数的方法
ES6语法增加了 的规则,箭头函数的this指向上一级作用域