onReachBottom只触发了一次
发布于 4 年前 作者 chao63 9531 次浏览 来自 问答

1、基础库版本 大于1.5.0

2、onReachBottom 可以触发一次,但是不在触发第二次及以上

3、模拟器和真机都是这个情况

4、我的场景是与swiper结合使用。

10 回复

我自己做了个简单的例子试了下,并没有发现有什么问题。请提供一下能复现问题的简单代码示例。

麻烦楼上两位提供一下wxml和wxss文本,以便我们进一步分析。另外,麻烦 @IIIIIIIIF 描述一下你遇到的具体问题(你遇到的具体问题不一定一样),谢谢!

那请提供一下关键部分的代码。使用overflow-y的情况比较复杂,我们需要仔细排查。

首先我们不推荐用overflow-y,这方面的支持会比较差。这个bug我们需要进一步调查。

稍微下拉就请求数据”是什么意思呢?

感谢两位的关注。

这里的要点是:“onReachBottom”实际上是表示页面page节点本身的底部区域是否进入了可视区域。也就是说,无论scroll-view还是任何其他的方式,只要页面page节点的底部区域进入了可视区域,onReachBottom就会被触发(即使page节点本身没有滚动条)。

在1.5.0版本中,做这个检测的时候增加了一个附加条件:必须是page节点底部区域离开可视区域之后再次进入可视区域时,才会再次触发onReachBottom。推测就是这一个附加条件导致了楼主的代码失效。但我们暂时没有移除这个附加条件的计划,因为这个附加条件在逻辑上是合理的。如果这个附加条件导致了其他问题(有其他反馈的话),我们会尝试解决。

如果需要使用overflow-y并检测是否滚动到达底部,可以在底部放置一个view节点,并在touchmove时,用 wx.createSelectorQuery API 来检测这个view节点是否进入可视区域。这种做法可以准确检测滚动触底。

如果还有疑问,欢迎继续反馈讨论,谢谢!

  1. 1.5.0中增加了onReachBottomDistance页面选项,可以调整一下这个选项试试;

  2. 不要轻易使用overflow-y,容易引起一些问题,应使用scroll-view。

请参见24楼的解答。

这个是由于我们1.5.0版本的调整导致。这种调整不能够兼容使用overflow-y的情形,目前请考虑用其他方式实现。

麻烦提供代码文字版(非截图版)的wxml wxss和设置列表内容的js。

你好,麻烦描述下你遇到的具体问题?

回到顶部