react-native-refresh-list-view icon indicating copy to clipboard operation
react-native-refresh-list-view copied to clipboard

上拉刷新,底部会调用两次

Open waterfly opened this issue 6 years ago • 6 comments

这个问题,在Closed里面看到过,但是我这里 onEndReachedThreshold={0.1} 设置了 ,是最新的代码,但是还是不行,如果断点调试就不会,不断点就会出现,调试了下,发现都是 _onScroll 里触发的,触发第二次是 contentsize 还没刷新,是不是因为下拉滑动过快,然后请求很快回来,然后还在 _onScroll 里执行多次触发 _maybeCallOnEndReached ? 我这边的RN是 0.46.4 ,在demo里修改RN版本后报错,iOS跑不起来

waterfly avatar Jun 15 '18 09:06 waterfly

就是如果慢慢滑动,就不会触发两次,滑动过快就会很容易触发两次

waterfly avatar Jun 15 '18 09:06 waterfly

目前把接口请求回来后先刷新页面,然后刷新状态延迟500ms,暂时解决了这个问题

waterfly avatar Jun 22 '18 08:06 waterfly

@waterfly 我们项目中也遇到这个问题, 这个似乎是flatlist的通病. 到目前为止, 我也没有特别好的解决方案. 如果用listview 就会有精确的距离控制. 但是flatlist中 距离似乎是按照比例算的.

HengCC avatar Jul 03 '18 09:07 HengCC

目测是FlatList组件的bug。

在源码RefreshListView.js的第93行,将onEndReachedThreshold={0.1}改成onEndReachedThreshold={-0.1}可以暂时解决这个问题,但是快速用力上拉导致重复调用onFooterRefresh()的概率还是存在的。

lenconda avatar Jul 14 '18 03:07 lenconda

0.52.0也遇到这个问题,目前每次请求都跟上次请求时间对比下,少于500毫秒不允许进入请求刷新,暂时较好的解决这个问题

hament avatar Dec 17 '18 04:12 hament

+1

DEVfancybear avatar Apr 02 '21 20:04 DEVfancybear