uni-app中scroll-view下拉刷新一次后,下一次无法触发refresherrefresh,是什么原因?希望有大佬能帮助一下

uni-app中scroll-view下拉刷新一次后,下一次无法触发refresherrefresh,是什么原因?希望有大佬能帮助一下

<scroll-view scroll-y refresher-background="#f7f6f4" refresher-enabled=“enable” refresher-triggered=“refresh” @refresherrefresh=“handleRefresherRefresh” @scrolltolower=“handleScrollToLower” @scroll=“handleScroll” class=“scrollContainer”>

handleRefresherRefresh(){ if (this.going) return; this.going = true; console.log(‘触发了’) if (!this.refresh) this.refresh = true; this.init();//加载数据 setTimeout(() => { this.refresh = false; this.going = false; }, 300); }, handleScrollToLower(){ let {loading, end, pageNum} = this; if (!loading && !end) { pageNum++; this.pageNum = pageNum; this.table(); } }, handleScroll(event){ let scrollTop = event.detail.scrollTop; this.enable = scrollTop <= 10; },

</scroll-view>

更多关于uni-app中scroll-view下拉刷新一次后,下一次无法触发refresherrefresh,是什么原因?希望有大佬能帮助一下的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

3.2.0 alpha 已修复

更多关于uni-app中scroll-view下拉刷新一次后,下一次无法触发refresherrefresh,是什么原因?希望有大佬能帮助一下的实战教程也可以访问 https://www.itying.com/category-93-b0.html


老哥,解决了嘛,我的App也是这个情况呢

不过我是包裹在swiper内的

同样的问题,我不记得之前会这样啊?好像是更新后才这样的。

已确认好像是个bug,官方应该下个版本修复

是的哦,这个scroll-view还有其他bug,好难哦

问题出在refresher-triggered属性的绑定逻辑上。当前代码中refresher-triggered始终绑定为refresh(固定值true),在下拉刷新完成后没有重置状态。

解决方案:

  1. refresher-triggered绑定到动态变量:
<scroll-view :refresher-triggered="isRefreshing">
  1. 修改刷新处理逻辑:
handleRefresherRefresh(){
  if (this.going) return;
  this.going = true;
  this.isRefreshing = true; // 开启刷新状态
  
  this.init().then(() => {
    // 数据加载完成后重置状态
    this.isRefreshing = false;
    this.going = false;
  }).catch(() => {
    this.isRefreshing = false;
    this.going = false;
  });
}
回到顶部