this指向undefined uiapp_uni-app开发踩坑之路之this指向问题

在uni-app小程序开发中,遇到methods内的方法无法通过this调用其他方法的问题,错误显示`this.loadData is not a function`。经排查,发现在onLoad中this指向正确,而在其他方法中不正确。解决方案是保存onLoad中的this到全局变量that,并在其他方法中使用that调用所需方法。此问题可能是使用特定插件导致的,记录下来以供遇到同样问题的开发者参考。
摘要由CSDN通过智能技术生成

问题的发生

今天调试开发uniapp小程序时出现了一个问题,即 methods下的 pullDown 方法和 pullUp方法无法调用同为methods下的方法loadData, 编译至小程序的console控制台报错 TypeError:this.loadData is not a function ,输出结果如下:

报错截图

源代码是这样的:

布局代码

源代码

同为methods {}下的方法,使用this去调用竟然找不到方法?丈二和尚摸不着头脑,我也是一脸懵逼,完全搞不懂是为什么。

而且,在开发的时候, H5上是很正常的,可是运行到小程序上就出现这种问题。

接下来,我查找了几个uni-app的项目,发现他们项目也都可以通过this.function()的形式进行方法调用没有问题, 初步判断,排除自身的语法或写法问题。

由于我的代码在onLoad中也执行了this.loadData()方法,而在onLoad方法中调用成功,methods中却调用失败,提示方法不存在,那么问题可能就出现在了这个this的指向上。

onLoad(options) {

this.loadData();

}

onLoad执行的方法可以正确加载数据

通过对this,this.l

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值