现象
列表滑动过快时,明明已经滑到底了,onReachBottom 不触发,加载更多不执行。
原因
小程序/uni-app 对 onReachBottom 有约 350ms 的触发节流:滑动很快时,触底瞬间可能落在节流窗口内,这次触底就不会再触发回调,所以表现就是「滑太快不触发」。
解决
触底后先延迟几百毫秒再发请求,和节流窗口错开,触发就稳定。比如延迟 500ms(比 350ms 大即可):
javascript
onReachBottom(() => {
setTimeout(() => {
loadMore()
}, 500)
})