unstale

npm / @shopify/flash-list

@shopify/flash-list

What changed in @shopify/flash-list 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-14.

17 breaking6 deprecations21 new APIs and options6 behavior and defaults17 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.3.1 on npm

@shopify/flash-list 267 changes

Breaking changes 17

  • Removes x,y from measureParentSize, fixing Fabric sticky header offset.

    2.2.3release notes

  • CellContainer is no longer exported; replace it with React Native's View.

    2.0.0upgrade guide

  • This prop is no longer supported because v2 has no auto layout.

    2.0.0upgrade guide

  • This prop is no longer needed and should be removed.

    2.0.0upgrade guideupgrade guide

  • Remove this size-estimation prop; FlashList v2 automatically handles sizing.

    2.0.0upgrade guide

  • Remove this size-estimation prop; FlashList v2 automatically handles sizing.

    2.0.0upgrade guide

  • Remove this size-estimation prop; FlashList v2 automatically handles sizing.

    2.0.0upgrade guide

  • Use the masonry prop to enable masonry layout on FlashList.

    2.0.0upgrade guideupgrade guide

  • Use FlashListRef as the ref type for FlashList instead of FlashList.

    2.0.0upgrade guide

  • This MasonryFlashList API is not supported in v2.

    2.0.0upgrade guide

  • getColumnFlex from MasonryFlashList will not be supported with the v2 masonry prop.

    2.0.0upgrade guide

  • In grid layout, a shorter item beside a taller item now matches the taller item's height.

    2.0.0upgrade guide

  • Horizontal lists are much improved, items can resize within them, and an extra item is no longer rendered to measure list height.

    2.0.0upgrade guide

  • FlashList no longer asks for estimates, making it easier to use.

    2.0.0upgrade guide

  • This prop is no longer supported and should be removed from FlashList components.

    2.0.0upgrade guide

  • This callback no longer supports setting size; it only supports span changes.

    2.0.0upgrade guideupgrade guide

  • FlashList v2 only works on top of React Native's new architecture.

    2.0.0upgrade guiderelease notes

Deprecations 6

  • disableAutoLayout is deprecated because there is no auto layout in v2.

    2.0.0upgrade guide

  • estimatedFirstItemOffset is deprecated because it is no longer used.

    2.0.0upgrade guide

  • estimatedItemSize is deprecated because it is no longer used.

    2.0.0upgrade guide

  • estimatedListSize is deprecated because it is no longer used.

    2.0.0upgrade guide

  • MasonryFlashList is deprecated; migrate to FlashList with the masonry prop.

    2.0.0upgrade guideupgrade guide

  • onBlankArea is deprecated; the project has no plans to add or continue supporting it.

    2.0.0upgrade guide

New APIs and options 21

  • Adds configuration for sticky header zIndex.

    2.3.2release notes

  • Adds an inverted prop.

    2.3.0release notes

  • Introduces onChangeStickyIndex.

    2.2.0release notes

  • Introduces sticky header configuration for offset, backdrop, native driver, and hiding the cell.

    2.2.0release notes

  • The FlashList ref exposes more methods, including getVisibleIndices and getLayout.

    2.0.0upgrade guide

  • A helper component observes FlashList layout commits, including when multiple FlashLists in a component tree have finished committing layout.

    2.0.0upgrade guide

  • Controls whether scrolling is animated whenever autoscrollToBottom is triggered; the default is true.

    2.0.0upgrade guide

  • Automatically scroll to maintain position when content is added at the bottom.

    2.0.0upgrade guide

  • Automatically scroll to maintain position when content is added at the top.

    2.0.0upgrade guide

  • Set disabled to true to turn off maintainVisibleContentPosition.

    2.0.0upgrade guide

  • When true, the initial render starts from the bottom, which is useful for chat interfaces.

    2.0.0upgrade guide

  • Sets the maximum number of items in the recycle pool; the notes say it is only needed when the number of item types is huge.

    2.0.0upgrade guide

  • A callback runs before layout is committed and can measure the list and make changes before paint; setting state inside it can cause infinite loops.

    2.0.0upgrade guide

  • A callback is called when the scroll position gets within onStartReachedThreshold of the start of the content.

    2.0.0upgrade guide

  • Configures how far from the start the top edge of the list must be to trigger onStartReached.

    2.0.0upgrade guide

  • When enabled with masonry layout, item order can be modified to reduce differences in column height.

    2.0.0upgrade guide

  • Styles the FlashList parent container; padding is discouraged because it can affect the size of the ScrollView inside.

    2.0.0upgrade guide

  • Exposes helpers to access the FlashList ref and the ScrollView ref, including from child components or CellRendererComponent.

    2.0.0upgrade guide

  • A useState-like hook communicates state changes to FlashList and can help resize child components smoothly.

    2.0.0upgrade guide

  • Returns a helper for creating optimal mapping keys when using .map() in render methods, supporting optimized recycling and performance.

    2.0.0upgrade guide

  • A useState-like hook resets state when dependencies change without an additional setState call and includes useLayoutState functionality.

    2.0.0upgrade guide

Behavior and default changes 6

  • This prop is enabled by default for better scroll position handling.

    2.0.0upgrade guideupgrade guide

  • overrideItemLayout can now be used with masonry.

    2.0.0upgrade guide

  • FlashList adds support for RTL layouts.

    2.0.0upgrade guide

  • scrollToIndex is much more precise.

    2.0.0upgrade guide

  • scrollToItem is much more precise.

    2.0.0upgrade guide

  • Sticky headers use an Animated implementation so minor gaps between them while scrolling are no longer visible.

    2.0.0upgrade guide

Fixes and other changes 17

  • Fixes blank rows during fast scrolling when drawDistance is small.

    2.3.3release notes

  • Disables removeClippedSubviews to prevent an Android crash.

    2.3.2release notes

  • Fixes an autoscroll race when scrolling to an index.

    2.3.2release notes

  • Guards against a zero window size in bound detection.

    2.3.1release notes

  • Enables maintainVisibleContentPosition for horizontal lists.

    2.3.1release notes

  • Adds a type to the RecyclerViewProps export statement to comply with isolatedModules.

    2.3.1release notes

  • Maintains scroll position when prepending large items.

    2.3.1release notes

  • Reads the initialScrollIndex offset after layout recompute.

    2.3.0release notes

  • Average measurement is now always positive.

    2.2.3release notes

  • Supports React.memo, forwardRef, and class components in all component props.

    2.2.3release notes

  • Suppresses grid separators in the last row to prevent height mismatch.

    2.2.3release notes

  • Eliminates scroll jitter when prepending items at the bottom.

    2.2.3release notes

  • Respects waitForInteraction when initialScrollIndex is set.

    2.2.3release notes

  • Filters stale indices from layoutInfo after truncation.

    2.2.2release notes

  • Fixes an index-out-of-bounds issue in viewability computation.

    2.2.2release notes

  • Fixes sticky header lists disappearing when currentStickyIndex is -1 on RN 0.83.

    2.2.1release notes

  • The contentContainerStyle prop is now fully supported.

    2.0.0upgrade guide