const containerRef = useRef(null)
const wrapperRef = useRef(null)
const [list, actions] = useVirtualList(largeList, {
// 或者直接使用 `querySelector` 的字符串: `#scroll-container`
containerTarget: containerRef,
// 或者直接使用 `querySelector` 的字符串: `#scroll-wrapper`
wrapperTarget: wrapperRef,
// 确保每个项目的高度为 48(包括 margin、padding 等),或者一个返回每个项目高度的函数
itemHeight: 48,
})
// actions.scrollTo(1000)
// actions.scrollToStart()
// actions.scrollToEnd()
// 使用 `list[0].data` 和 `list[0].index` 来渲染项目
return (
<div ref={containerRef} style={{ height: 300, overflow: 'auto' }}>
<div ref={wrapperRef}>
{list.map((item) => (
<div key={item.index} style={{ height: 48 }}>
{item.data}
</div>
))}
</div>
</div>
)