下拉刷新这个问题,查了老半天。
我这只小菜鸡,完全不知道view和scroll-view是不一样的!
问题现象:
按照官网的方式,
1. 在 pages.json 里,找到的当前页面的pages节点,并在 style 选项中开启 enablePullDownRefresh: true
2. 在页面中使用uni.startPullDownRefresh();以及uni.stopPullDownRefresh();
可是可是,我在浏览器调试是正确的,下拉刷新loading以及打印的log完全没问题,但是打包成app装在手机里就不行了,下拉完全没效果。
解决过程
view中使用onPullDownRefresh:
如果你用的view组件,那使用官网提供的onPullDownRefresh方法是没有问题的,代码如下:
js
onPullDownRefresh() {
uni.startPullDownRefresh({
success() {
uni.showToast({
title: "下拉刷新",
icon: 'none'
})
},
complete() {
uni.stopPullDownRefresh()
}
});
},
但如果在scroll-view中使用,是没有效果的!
scroll-view中使用@refresherrefresh
链接提供给大家,可以看下scroll-view的使用文档。原来scroll-view有一套自己的刷新方法。
- refresher-enabled设置为true
- 定义refresher-triggered,也就是刷新开始和结束的标志
- 写@refresherrefresh方法
代码如下:
html
<!-- html -->
<scroll-view refresher-enabled="true" :refresher-triggered="trigger" @refresherrefresh="refresherrefresh"></scroll-view>
js
// js
refresherrefresh() {
this.trigger = true;
this.doSomething(); // 调用你的方法
setTimeout(() => {
this.trigger = false;
}, 1000);
},
打包,大功告成,完美解决。
还不快去试试!