Skip to content

[RNTester][iOS] Playground reproducer: inverted FlatList renders nothing at rest on device (#59731) - #59732

Open
zj-linjie wants to merge 1 commit into
react:mainfrom
zj-linjie:repro-inverted-flatlist-59731
Open

zj-linjie wants to merge 1 commit into
react:mainfrom
zj-linjie:repro-inverted-flatlist-59731

Conversation

@zj-linjie

@zj-linjie zj-linjie commented Nov 1, 2026 •

Copy link
Copy Markdown

Reproducer for #59731 (inverted FlatList renders nothing at rest on device), as requested by @react-native-bot.

What reviewers will see (iPhone 16 Pro, iOS 27.0.1, RN 0.88.0, New Architecture/Fabric):

  • With the inverted switch on (default), the playground's bare FlatList paints nothing at rest — the bordered container stays empty while the scrollbar is visible, scrolling gestures work, and onContentSizeChange reports the correct content size.
  • During an interactive navigation transition the same list paints, and it goes blank as soon as the transition settles.
  • Flipping the switch off renders the identical list immediately.

The list is deliberately bare (inverted + data + keyExtractor + renderItem, no maintainVisibleContentPosition, no custom paddings, no removeClippedSubviews), so no prop interaction is involved. In our app we also ruled those out individually — removing removeClippedSubviews and/or maintainVisibleContentPosition from the inverted list does not change the failure, and the data layer was verified independently.

Steps: build RNTester to a physical device (iOS 27, New Architecture), open the Playground tab, and compare the switch states. Re-entering the screen shows the content only while the push transition animates.

Happy to collect view-hierarchy dumps or systrace on request.

Test Plan

Verified on a physical iPhone 16 Pro (iOS 27.0.1, RN 0.88.0, New Architecture/Fabric), with the playground content running through Metro on the device:

  • Playground tab, inverted switch ON (default): the list area stays blank at rest — the scrollbar is visible, scrolling gestures work, and onContentSizeChange reports the correct content size. Content paints only while a navigation transition is animating and vanishes when the screen settles.
  • Flip the switch OFF: the identical list renders immediately and stays painted.
  • Re-entering the screen reproduces the same signature (content visible during the push transition, blank once settled).
  • The data layer was verified independently during the original investigation (store contents and page sizes constant across the blank state) — the failure is render/compositing only.

Changelog

[INTERNAL] ----------

@meta-cla

meta-cla Bot commented Nov 1, 2026

Copy link
Copy Markdown

Hi @zj-linjie!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant