Basically https://github.com/react/react-native-website/issues/1529 from 2019 which was closed due to inactivity. Related: https://github.com/react/react-native-website/pull/2634 which attempted to address this but unfortunately received no attention. ## Description The second example at https://reactnative.dev/docs/flatlist#example is introduced with > By passing `extraData={selectedId}` to `FlatList` we make sure `FlatList` itself will re-render when the state changes. Without setting this prop, `FlatList` would not know it needs to re-render any items because it is a PureComponent and the prop comparison will not show any changes. But if you delete the `extraData` prop everything works fine. Since `renderItem` closes over `selectedId`, it is recreated whenever `selectedId` changes (or on every single render if the react compiler is disabled), hence `FlatList` receives a new prop and re-renders properly as you'd expect. Which makes me wonder: is there ever a need for `extraData`? Was it once necessary (perhaps in class component days, or old react native architecture) and is no longer needed? I'm struggling to think of a scenario in which it's needed, other than an escape hatch for syncing with something outside react, or to opt back in to reactivity after making manual memoizations. Currently the docs suggest it's necessary to make basic reactivity work, which is confusing. ## Documentation version 0.87