Uni-app发展道路上的这个指向性问题
APP开发
浏览:861 次

问题的发生
今天调试和开发uniapp小程序时出现了一个问题,即方法下的pullDown方法和pullUp方法无法在相同的方法下调用方法loadData,并且在编译到小程序的控制台时报告错误TypeError:此loadData不是函数。输出结果如下:
错误报告屏幕截图
源代码如下:
布局代码
源代码
方法{}下的方法相同。你不能通过调用这个找到方法吗?第二个和尚很困惑,我也很困惑。我不明白为什么。
此外,H5在开发过程中是正常的,但在运行小程序时会出现此问题。
接下来,我搜索了几个uni-app项目,发现它们的项目也可以通过。以function()的形式调用方法没有问题。做出初步判断,以消除其自身的语法或写作问题。
因为我的代码也在onLoad中执行此操作。loadData()方法在onLoad方法中被成功调用,但在methods方法中失败,这表明该方法不存在,所以问题可能在这个方向上。
onLoad(选项){
this.loadData();
}
onLoad方法可以正确加载数据
通过这个的日志打印,这个。loadData,发现在当前方法下定义的方法在以下实例中不存在:
打印日志

打印结果
Vue实例
解决问题
因为您知道在onLoad对象下这是正确的,所以使用一个全局变量来初始化并将其保存到onLoad中,然后在pullUp方法中使用这个全局变量来调用。
在导出默认{}代码块之前的脚本开头初始化变量
//<脚本>
设th=空;
//导出默认值{
在onLoad中初始化
上传(){
th=这;
this.loadData();
}
修改pullUp方法,并将其更改为
上拉(vm){
第++页;

加载数据();
}
最后,pullUp方法调用此。加载();最后,它得以正常实施。
成功onLoad执行后的输出
后记
我在pullUp(vm)中打印了that、this和vm的三个实例_uid确认了这个和那个在这个方法中的方向确实不同:
上拉(vm){
安慰log(“那”,那);
安慰日志('vm',vm);
安慰日志(“此”,this);
第++页;
加载数据();
}
那个,这个,vm
vm很容易理解。事实上,vm是刷新和加载的控件,也是当前页面的vue实例。至于这一点,在搜索了一个圆圈后,它指向的仍然是未知的[举手/皱眉]。
这个问题可能只有uni app的s-pull scroll插件才能使用。因为我不久前才启动uni app,vue才刚刚起步。当我第一次遇到这个问题时,我不知所措。经过一上午的处理,我们终于发现了问题并解决了。一方面,它方便了遇到相同问题的人快速找到解决方案。另一方面,它也记录了他们遇到的问题的发生、思考和解决,以及经验的积累。

圈占地