解决 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就能够实现滚动啦!

相关推荐
JosieBook21 小时前
【多线程】两台机器同时抢一个字典:一次并发 Bug 的排查
java·网络·bug
鬼手点金1 天前
nanoGPT/nanochat 能做出 DeepSeek/Qwen 这样的大模型吗?
服务器·前端·javascript·bug·openclaw
小玮看世界2 天前
【Bug 报告】腾讯元宝 Windows 客户端 v2.88.1 新建对话卡死、界面残留与输入框乱码
bug
衣舞晨风3 天前
一次升级引出两个BUG:API7 AI 网关流式 500 与低流量 CPU 打满排查
网关·ai·bug·异常排查
小此方7 天前
「插曲:Git」企业规范篇:DevOps开发模型、Git Flow五类分支设计与测试/预发布/生产环境Bug修复及Hotfix紧急发布流程
git·bug·devops
中文英文-我选中文9 天前
FreeRTOS 玄学Bug:调换任务创建顺序,程序时而正常、时而死机(栈溢出内存踩踏深度复盘)
bug
Keven_119 天前
BUG:UVA116
算法·bug·图论
鬼手点金9 天前
opencode-隐私优先配置
服务器·前端·javascript·bug·openclaw
itmigrate11 天前
异步请求竞态,藏在页面渲染里的隐形bug
bug
今夕资源网12 天前
OmniVoice 今夕整合包 本地语音TTS断网可用 修复了一些BUG 优化生成速度 极速秒生成
bug·语音克隆·omnivoice·断网可用·本地语音tts·语音tts