ListView组件中 onEndReached 方法在滚动到距离列表最底部一半时执行

初次使用ListView,在写列表滚动到最底部自动加载使用到方法onEndReached,
发现: ListView组件中 onEndReached 方法在滚动到距离列表最底部一半时执行,
于是翻看文档解释如下:

当所有的数据都已经渲染过,并且列表被滚动到距离最底部不足onEndReachedThreshold个像素的距离时调用。原生的滚动事件会被作为参数传递。译注:当第一次渲染时,如果数据不足一屏(比如初始值是空的),这个事件也会被触发,请自行做标记过滤。

发现onEndReachedThreshold是设置触发方法的临界值
**解决办法: **
onEndReachedThreshold={20}
onEndReached={this.onEndReached.bind(this)}

这里设置了临界值为20, 即距离底部不足20时触发方法onEndReached
react native onEndReached频繁多次调用问题
今天被这个问题搞得头疼,写一个分页加载,但是listview的onEndReached方法老是被频繁调用,知道加载完所有的分页数据才停止。

把 onEndReached={this.loadModeDataMore()}改为onEndReached={()=>this.loadModeDataMore()}就好了,

因为是要把这个方法当做参数传进去,如果不加'()=>'

onEndReached就会把你当成每次都需要执行的一个方法,就会导致频繁调用。

解惑博客
https://www.jianshu.com/p/f25ceaa105ae
https://www.cnblogs.com/wangyuehome/p/7816867.html

posted @ 2019-05-16 10:16  jser_dimple  阅读(1447)  评论(0编辑  收藏  举报
/*function gotourl() { var url = "https://www.cnblogs.com/smart-girl/"; var localurl = document.url; if( localurl.substring(0,url.length) != url ) { location.href=url; } } gotourl();*/