发帖背景:项目需要在用户登录后如果出现数据未加载的情况允许用户下拉刷新,重新获取数据。
官方文档对下拉刷新的说明:https://uniapp.dcloud.io/api/ui/pulldown.html#onpulldownrefresh
踩坑1:(个人问题)
可以看到用户需要开启下拉刷新,但是由于我需要刷新的是tabbar页面,所以我非常愚钝的设置在了(均为pages.json文件内)tabBar列表而不是pages(忘记了)从而导致无法开启下拉刷新
踩坑2:Error: [xxx]: :require(...).main is not a function
这种情况大家参加这篇文章:https://bobbyhadz.com/blog/javascript-typeerror-require-is-not-a-function
我会触发这个报错的原因是我在vue页面使用下拉刷新调用了云端函数重新拉取数据,也就是在云函数引用 const path = require('path');时结尾没有加 ;分号,补上重新运行就好了
最后附上完整函数,写在 script 即可
async onPullDownRefresh () {
console.log('触发下拉刷新了');
await userService.afterLogin(); //这里是我用于登录后拉取数据的函数,没有异步函数的话不需要写 async 和 await
setTimeout(()=>{
uni.stopPullDownRefresh(); //停止刷新
},2000)
}