You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React表格中InfiniteScroll仅更新一次的原因排查

无限滚动仅首次生效的原因分析

1. 错误的终止条件直接锁死后续加载

代码里的判断逻辑存在致命问题:

if (items.length >= items.length +1) {
    setHasMore( false );
  return;
}

这个条件永远为true——任何数值都不可能大于等于自身加1。第一次调用fetchMoreData时,就会立刻把hasMore设为false,后续滚动触发加载时,无限滚动组件会因为hasMore为false直接停止触发逻辑。

2. 未实际更新表格数据源

就算跳过上面的错误条件,当前代码只更新了offset的值,却完全没有把新加载的数据追加到items数组里。表格的渲染依赖items状态,不更新items的话,页面根本不会显示新数据,看起来就像没触发加载。

3. 异步更新的闭包陷阱

setTimeout里的setOffset(offset + 10)存在闭包问题:offset会捕获函数创建时的旧值,多次触发时可能无法正确累加偏移量,导致后续的偏移量计算完全错误。

内容的提问来源于stack exchange,提问作者Fatma Mahmoud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 16:54:53