c***@163.com
c***@163.com
  • 发布:2020-05-21 10:35
  • 更新:2022-05-15 12:33
  • 阅读:1491

【报Bug】nvue的list组件 偶现下拉刷新后再也无法触发上拉加载loadmore事件

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 2.7.5

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: nova5plus

页面类型: nvue

nvue编译模式: fast

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

loadmore事件逻辑:pageIndex++ 分页拉取数据 在原有的数据数组基础上concat此次拉取的数据
refresh事件逻辑:pageIndex重置为1 数据重置为空数组 拉取第一页数据
逻辑肯定没问题,之前用vue页面配合onreachBottom和onPullDownRefresh从来没有出现过这种问题。
而且大部分情况下能正常工作 ,即使用了下拉刷新后,再次拉到底部也是能正常重新触发loadmore的,但试验了几个改造过后的nvue页面,发现在android端,如果对list的下拉刷新操作的非常缓慢,很长时间才松手,很容易造成之后就不能触发loadmore了,且复现率相对较高(官方的新闻模板也是如此),但并不是百分百复现。

操作步骤:

在使用list的nvue页面 手动下拉刷新list组件

预期结果:

数据回到首页数据,上拉至list底部可以触发loadmore事件,加载更多数据

实际结果:

未触发loadmore事件

bug描述:

使用nvue的list组件,设置高度为屏幕高度-顶部固定元素高度。
为list添加refresh组件。为list添加了@loadmore事件 和@refresh事件

大部分情况下 refresh和loadmore都可以正常工作,
偶现缓慢下拉触发refresh后,就再也无法触发loadmore事件了。

目前ios尝试各种花式下拉刷新list后均未发现此问题。但在android模拟器和真机华为nova5plus上均发现了此问题。

且为偶现 无法判断为何不触发loadmore事件

2020-05-21 10:35 负责人:无 分享
已邀请:

最佳回复

tuonioooo

tuonioooo

需要增加重置resetLoadmore 方法,使用流程官网写的不好,请看如下:

async loadMore() {  
  // 你的加载数据api 接口 自己做点什么  

  this.resetLoadmore(); //调用重置方法  
},  
// 重置 loadmore  
resetLoadmore() {  
  this.$refs["list"].resetLoadmore();  
},  

这个重置方法 我感觉 就是他目前内部的bug 可能目前无法解决 后续肯定会内部优化掉 只不过会等上个5、6年吧

  • 1***@qq.com

    报错方法不识别啊这,this.$refs["list"].resetLoadmore is not a function

    2022-06-18 11:58

  • tuonioooo

    回复 1***@qq.com: <list ref="list"> </list> 没有加吧 ,你这技术太虚弱了

    2022-06-24 10:22

  • 8***@qq.com

    解决了这个困扰了好久的问题,原来是要重置啊,感谢感谢

    2022-10-30 22:25

7***@qq.com

7***@qq.com

请问解决了吗?我也遇到这个问题了

守护

守护

我也遇到这个问题了

DCloud_UNI_HDX

DCloud_UNI_HDX

要回复问题请先登录注册