# What changed in @shopify/flash-list

> 67 changes in @shopify/flash-list 2 from its official release notes, upgrade guides and advisories: 17 breaking, 6 deprecations, 21 new APIs and options. Each one cited. Sources checked 2026-11-14. HTML: https://unstale.sh/npm/@shopify/flash-list/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @shopify/flash-list 2

### Breaking changes

- Removes x,y from measureParentSize, fixing Fabric sticky header offset. (2.2.3) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.3)
- CellContainer is no longer exported; replace it with React Native's View. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration)
- This prop is no longer supported because v2 has no auto layout. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration)
- This prop is no longer needed and should be removed. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration), [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Remove this size-estimation prop; FlashList v2 automatically handles sizing. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration)
- Remove this size-estimation prop; FlashList v2 automatically handles sizing. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration)
- Remove this size-estimation prop; FlashList v2 automatically handles sizing. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration)
- Use the masonry prop to enable masonry layout on FlashList. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration), [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Use FlashListRef as the ref type for FlashList instead of FlashList. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration)
- This MasonryFlashList API is not supported in v2. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration)
- getColumnFlex from MasonryFlashList will not be supported with the v2 masonry prop. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- In grid layout, a shorter item beside a taller item now matches the taller item's height. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Horizontal lists are much improved, items can resize within them, and an extra item is no longer rendered to measure list height. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- FlashList no longer asks for estimates, making it easier to use. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- This prop is no longer supported and should be removed from FlashList components. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration)
- This callback no longer supports setting size; it only supports span changes. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration), [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- FlashList v2 only works on top of React Native's new architecture. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration), [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.0.0)

### Deprecations

- disableAutoLayout is deprecated because there is no auto layout in v2. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- estimatedFirstItemOffset is deprecated because it is no longer used. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- estimatedItemSize is deprecated because it is no longer used. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- estimatedListSize is deprecated because it is no longer used. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- MasonryFlashList is deprecated; migrate to FlashList with the masonry prop. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration), [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- onBlankArea is deprecated; the project has no plans to add or continue supporting it. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)

### New APIs and options

- Adds configuration for sticky header zIndex. (2.3.2) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.2)
- Adds an inverted prop. (2.3.0) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.0)
- Introduces onChangeStickyIndex. (2.2.0) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.0)
- Introduces sticky header configuration for offset, backdrop, native driver, and hiding the cell. (2.2.0) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.0)
- The FlashList ref exposes more methods, including getVisibleIndices and getLayout. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- A helper component observes FlashList layout commits, including when multiple FlashLists in a component tree have finished committing layout. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Controls whether scrolling is animated whenever autoscrollToBottom is triggered; the default is true. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Automatically scroll to maintain position when content is added at the bottom. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Automatically scroll to maintain position when content is added at the top. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Set disabled to true to turn off maintainVisibleContentPosition. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- When true, the initial render starts from the bottom, which is useful for chat interfaces. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- 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.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- 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.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- A callback is called when the scroll position gets within onStartReachedThreshold of the start of the content. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Configures how far from the start the top edge of the list must be to trigger onStartReached. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- When enabled with masonry layout, item order can be modified to reduce differences in column height. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Styles the FlashList parent container; padding is discouraged because it can affect the size of the ScrollView inside. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Exposes helpers to access the FlashList ref and the ScrollView ref, including from child components or CellRendererComponent. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- A useState-like hook communicates state changes to FlashList and can help resize child components smoothly. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Returns a helper for creating optimal mapping keys when using .map() in render methods, supporting optimized recycling and performance. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- A useState-like hook resets state when dependencies change without an additional setState call and includes useLayoutState functionality. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)

### Behavior and default changes

- This prop is enabled by default for better scroll position handling. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-migration), [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- overrideItemLayout can now be used with masonry. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- FlashList adds support for RTL layouts. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- scrollToIndex is much more precise. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- scrollToItem is much more precise. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
- Sticky headers use an Animated implementation so minor gaps between them while scrolling are no longer visible. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)

### Fixes and other changes

- Fixes blank rows during fast scrolling when drawDistance is small. (2.3.3) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.3)
- Disables removeClippedSubviews to prevent an Android crash. (2.3.2) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.2)
- Fixes an autoscroll race when scrolling to an index. (2.3.2) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.2)
- Guards against a zero window size in bound detection. (2.3.1) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.1)
- Enables maintainVisibleContentPosition for horizontal lists. (2.3.1) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.1)
- Adds a type to the RecyclerViewProps export statement to comply with isolatedModules. (2.3.1) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.1)
- Maintains scroll position when prepending large items. (2.3.1) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.1)
- Reads the initialScrollIndex offset after layout recompute. (2.3.0) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.3.0)
- Average measurement is now always positive. (2.2.3) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.3)
- Supports React.memo, forwardRef, and class components in all component props. (2.2.3) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.3)
- Suppresses grid separators in the last row to prevent height mismatch. (2.2.3) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.3)
- Eliminates scroll jitter when prepending items at the bottom. (2.2.3) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.3)
- Respects waitForInteraction when initialScrollIndex is set. (2.2.3) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.3)
- Filters stale indices from layoutInfo after truncation. (2.2.2) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.2)
- Fixes an index-out-of-bounds issue in viewability computation. (2.2.2) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.2)
- Fixes sticky header lists disappearing when currentStickyIndex is -1 on RN 0.83. (2.2.1) — [release notes](https://github.com/Shopify/flash-list/releases/tag/v2.2.1)
- The contentContainerStyle prop is now fully supported. (2.0.0) — [upgrade guide](https://shopify.github.io/flash-list/docs/v2-changes)
