uniapp使用 mescroll uni版本插件时下拉刷新正常上拉加载不触发的问题

556 阅读1分钟

问题的产生

  我所接触的移动端项目经常会一个页面展示大量的列表数据,如果一次性将这些列表数据全部展示出来会严重影响性能,所以列表数据最佳的展示方式是后端将列表数据进行分页,前端每次请求只去少量数据进行渲染,页面滑到底部时再次进行请求拿到数据进行渲染。

  我选用的是 mescroll 插件,但是最近在使用时我发现插件的下拉刷新是正常的,但是上拉加载总是不触发。

问题的解决

  我找到了一篇文章专门介绍解决此插件上拉加载不生效的文章:blog.csdn.net/weixin_4499… 并尝试了文章中的所有方法都没有解决问题。我打算放弃这个插件改用uniapp原生的onReachBottom钩子去实现上拉加载功能时发现页面拉到最下面onReachBottom钩子也不会触发,我又查阅相关文档发现:

使用onReachBottom钩子,页面根节点(template的子节点)的高度不能写死(100%也不行),否则此钩子函数不会触发。

我的页面根节点高度设为了100%,由此我猜测插件的上拉加载不触发问题也是这个原因,将height: 100%;删掉后,果然mescroll的上来加载事件可以正常触发了。

附:mescroll官网地址

mescroll.js 是在 H5端 运行的下拉刷新和上拉加载插件