解决 InfiniteScroll 滚动 BUG

在之前实现滚动加载方案有

方案一:官方 Ant Design 方案

复制代码
<div
      id="scrollableDiv"
      style={{
        height: 400,
        overflow: 'auto',
        padding: '0 16px',
        border: '1px solid rgba(140, 140, 140, 0.35)',
      }}
    >
<InfiniteScroll
                            dataLength={modelDesc.length}
                            next={loadMore}
                            hasMore={hasMore}
                            loader={<div className={styles.loading}>加载中...</div>}
                            endMessage={<div style={{ textAlign: 'center' }}>已加载全部数据</div>}
                            scrollableTarget="scrollContainer"
                        >
</div>

通过在外层嵌套标签<div>并添加id="scrollableDiv"属性,InfiniteScroll 中直接绑定这个属性scrollableTarget="scrollableDiv"实现滚动加载。

方案二:InfiniteScroll 直接添加 height 属性

与外层标签<div> scrollableDiv绑定失效,导致无法实现滚动加载,进入官方文档排查之后直接在

InfiniteScroll 标签中添加 height 属性,height={700},不使用外层标签 <div> ,以此实现滚动加载。

复制代码
<InfiniteScroll
          dataLength={allMessages.length}
          next={handleOnLoad}
          hasMore={hasMore}
          endMessage={
            (() => {
              return allMessages.length === 0 ? null : (
                <div style={{ textAlign: 'center' }}>已加载全部数据</div>
              );
            })()
          }
          height='calc(100vh - 200px)'
          className={styles.scrollContainer}
        >

方案三:通过动态计算

前两者实现起来都有问题的情况下

触发失效时机:笔记本显示以及显示器显示,两者的屏幕大小是不一样的

显示器正常显示 List 列表数据四条,当我将本地项目从显示器拖拽到笔记本显示后

变为了

其实数据在列表中,这时候是在缩放比为正常100%的情况下之下,当我缩小比例还是正常显示,但是按正常的交互来说这肯定是不对的。

因此代码修改只需替换 height:

复制代码
height='calc(100vh - 200px)'

当前的视口100vh减去内容 InfiniteScroll 除外的固定200px就能够实现滚动啦!

相关推荐
吨吨ai12 小时前
# ChatGPT Plus / Pro + Codex Debug 实战:如何让 AI 从日志、Trace、异常堆栈自动定位线上 Bug
人工智能·chatgpt·bug
灰暗世界%1 天前
飞牛bug修复
bug
凌云拓界3 天前
NodeVerdict | 性能门禁:把追踪数据变成 CI 规则
ci/cd·信息可视化·开源·node.js·bug·数据可视化·安全架构
qingmiaozhuan5 天前
软件测试Bug复现高清录屏标准流程:新手入门与规范指南(2026实战版)
bug·电脑录屏·电脑录屏软件·测试录屏规范·音画同步录制
凌云拓界5 天前
NodeVerdict:Node.js 原生诊断数据可视化工具
信息可视化·架构·typescript·开源·node.js·github·bug
蓝天下的守望者9 天前
验证环境中使用队列的pop_front()思维惯性引发的bug
bug
一只小菜鸡..10 天前
南京大学 操作系统 (JYY) 学习笔记:并发 Bug 的地狱——数据竞争、死锁与原子性违反
笔记·学习·bug
名字还没想好☜10 天前
React 受控输入框光标跳到末尾:格式化输入时的 selection 丢失 bug 与修复
前端·javascript·react.js·bug·react·next.js
陈 洪 伟12 天前
大模型推理引擎vLLM(30):由一个GLM5 bug,整理MLP中的SwiGLU、算子融合、量化相关问题
bug·mlp·vllm
endeavor1213 天前
BUG(记录)
bug