FlashList replaces FlatList as recommended list in React Native 0.72+
0 reputation · 29 Oct 2020, 05:47 UTC
Designing pagination for a large dataset with bounded queries in React Native involves choosing virtualization parameters that keep initial render fast and scrolling stable while avoiding memory pressure on low-end Android.
FlatList exposes windowSize, initialNumToRender and maxToRenderPerBatch to control the sliding window and batching. Since React Native 0.72, documentation recommends FlashList for large lists, which uses a custom layout engine and requires explicit estimatedItemSize for variable-height rows. FlashList measures scroll position on the native UI thread, which changes onEndReached timing compared with FlatList, and React Native 0.74 deprecates VirtualizedList.getScrollRef in favor of FlashList's direct scrollRef for programmatic scroll-to-index.
For a paginated list with variable item heights and deep-link scroll-to-index requirements, what estimatedItemSize tolerance is acceptable before layout shifts or missing items appear? Which onEndReachedThreshold value avoids duplicate fetches with FlashList's native measurement under momentum scroll? Does windowSize tuning remain relevant after migrating to FlashList for memory bounding?