Description
We wrote a SectionList component where each section defines it's own keyExtractor. One of the sections uses a key from a nested object in each item in the section. It broke when we wanted to add visibility tracking to the section list, and it seems like the section objects are being run through the keyExtractor but only when onViewableItemsChanged prop is provided.
I expect that only items within each section should be run through the section's keyExtractor function, and that the behavior is consistent regardless of what props are provided.
Steps to reproduce
- Open expo snack linked below
- Run it on android or iOS device and observe it works
- Uncomment the
onViewableItemsChanged line from the SectionList and observe the break
React Native Version
0.75.3
Affected Platforms
Runtime - Android, Runtime - iOS
Output of npx react-native info
See expo snack for reproduction
Stacktrace or Logs
Cannot read property 'id' of undefined
Reproducer
https://snack.expo.dev/V1Ad0VTld860Zdt8n-qb7
Screenshots and Videos

Description
We wrote a SectionList component where each section defines it's own keyExtractor. One of the sections uses a key from a nested object in each item in the section. It broke when we wanted to add visibility tracking to the section list, and it seems like the section objects are being run through the keyExtractor but only when
onViewableItemsChangedprop is provided.I expect that only items within each section should be run through the section's keyExtractor function, and that the behavior is consistent regardless of what props are provided.
Steps to reproduce
onViewableItemsChangedline from the SectionList and observe the breakReact Native Version
0.75.3
Affected Platforms
Runtime - Android, Runtime - iOS
Output of
npx react-native infoStacktrace or Logs
Reproducer
https://snack.expo.dev/V1Ad0VTld860Zdt8n-qb7
Screenshots and Videos