虚拟滚动列表高度计算不准怎么办?
我在用 React 实现虚拟滚动时,发现列表项高度不一致,用了 react-window 的 VariableSizeList,但滚动过程中经常出现空白或内容错位。是不是我哪里没设置对?
我试过在 itemSize 里返回固定值没问题,但动态高度就乱了。比如下面这样:
const itemSize = (index) => {
return contentHeights[index] || 60; // contentHeights 是提前计算好的高度数组
}
但有时候 contentHeights 还没更新完,列表就渲染了,导致高度为 60,后面内容就错位了……有没有靠谱的处理方式?
resetAfterIndex通知它重新计算布局。我之前是写个useEffect监听高度数组,只要变动了就重置一下,像下面这样: