Capítulo 11 de 20
The dynamic example renders sentences with different actual heights and lets the virtualizer measure them. It also demonstrates element scrolling, window scrolling, imperative navigation, and temporarily disabling the virtualizer.
const virtualizer = useVirtualizer({
count,
getScrollElement: () => parentRef.current,
estimateSize: () => 45,
enabled,
directDomUpdates: true,
})
{virtualizer.getVirtualItems().map((v) => (
<div
key={v.key}
ref={virtualizer.measureElement}
data-index={v.index}
style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
transform: `translateY(${v.start}px)`,
}}
>
<div style={{ padding: '10px 0' }}>{sentences[v.index]}</div>
</div>
))}
measureElement replaces it with actual DOM size.data-index when using the default measurement ref.directDomUpdates as an optimization with adapter-specific requirements.scrollMargin.