components之infiniteScroll 注意事项
先吐槽,看官方示例代码看的一头雾水
使用方式:
1.按官方文档来
<InfiniteScroll
ref={ref}
style={{ backgroundColor: '#ffffff' }}
hasMore={hasMore}
loadMore={loadMore}
data={list}
keyExtractor={(word) => word}
renderItem={({ item: word, index: i }) => (
<ListItem
hasBorder
key={word}
title={word}
extraText={String(i)}
onClick={() => {
console.log(`click ${word}`)
warn(word)
}}
/>
)}
>
{/* 如果不想使用renderItem的方式,直接传入children即可 */}
</InfiniteScroll>
2.如上所示,把children 扔到标签里
<InfiniteScroll
ref={ref}
hasMore={hasMore}
loadMore={loadMore}
>
{{ 你的children, 比如用map或foreach渲染列表 }}
</InfiniteScroll>
其实重要的属性就两个,hasMore和loadMore, 前者判断是否有更多数据并展示加载标识,后者是下拉触发的动作即service
最重要的两点:
1.尾页数据的判断,最后一页是满页或者不足一页的判断
2.如果你发现自己写的逻辑哪里都没问题,但是无限滚动就是不生效,或者一直显示加载中,不妨看下自己的infiniteScroll组件是否在一个固定高度的容器里,可以是100vh, 或者固定高度(或者是页面总高100%,其他部分固定高度,无限滚动部分设置height: 0, flex: 1)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?