Conversation
ListItemComponent is a documented, public prop of VirtualizedList (and thus FlatList and SectionList) in the Flow source, but was missing from the hand-written TypeScript definitions, causing a type error when used.
|
@fabriziocucci has imported this pull request. If you are a Meta employee, you can view this in D114061127. |
|
@fabriziocucci merged this pull request in 5306e92. |
xesrevinu
pushed a commit
to opraying/react-native-macos
that referenced
this pull request
Aug 30, 2026
…ionList TypeScript types (react#57754) Summary: `ListItemComponent` is a valid prop on `FlatList`, `SectionList` and `VirtualizedList` (it's in the Flow types in `VirtualizedListProps.js`), but it's missing from the `.d.ts`, so TypeScript errors on it even though it works at runtime. Added it to `VirtualizedListWithoutRenderItemProps` next to the other `List*Component` props, so all three inherit it. ## Changelog: [GENERAL] [ADDED] - Add missing ListItemComponent type to VirtualizedList props Pull Request resolved: react#57754 Test Plan: Errors on `main`, type-checks with the change: ```tsx <FlatList data={[]} ListItemComponent={MyItem} /> ``` Type-only, addition only, no runtime changes. Reviewed By: Abbondanzo Differential Revision: D114061127 Pulled By: fabriziocucci fbshipit-source-id: e843645a93b2320370829e8fd86deda078d6852a (cherry picked from commit 5306e92)
meta-codesync Bot
pushed a commit
that referenced
this pull request
Sep 16, 2026
Summary: I added `ListItemComponent` to these types in #57754 and got the comment wrong. It says the component receives `index` and `separators` "in addition to the data provided to `renderItem`", which reads as if `renderItem` doesn't get them. It does. `_renderElement` in `VirtualizedListCellRenderer.js` passes the same `item`, `index` and `separators` to both. This fixes that sentence and mentions the one thing that actually is different, which is precedence. When both are set, `ListItemComponent` wins and `_renderElement` logs a warning saying so. ## Changelog: [INTERNAL] [FIXED] - Fix JSDoc for ListItemComponent in VirtualizedList types Pull Request resolved: #58500 Test Plan: Comment-only change in a `.d.ts`, no type changes. Checked the wording against `_renderElement`: ```js if (ListItemComponent) { return ( <ListItemComponent item={item} index={index} separators={this._separators} /> ); } if (renderItem) { return renderItem({item, index, separators: this._separators}); } ``` Reviewed By: cortinico Differential Revision: D120077066 Pulled By: Abbondanzo fbshipit-source-id: 489321ae950b169c9a985d18220d1ec84114e5fc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ListItemComponentis a valid prop onFlatList,SectionListandVirtualizedList(it's in the Flow types inVirtualizedListProps.js), but it's missing from the.d.ts, so TypeScript errors on it even though it works at runtime.Added it to
VirtualizedListWithoutRenderItemPropsnext to the otherList*Componentprops, so all three inherit it.Changelog:
[GENERAL] [ADDED] - Add missing ListItemComponent type to VirtualizedList props
Test Plan
Errors on
main, type-checks with the change:Type-only, addition only, no runtime changes.