Skip to content

Commit

Permalink
Guard FlatList getItemCount() against incorrect data type
Browse files Browse the repository at this point in the history
Summary:
If FlatList is passed non-array data it will return `undefined` as the result of `getItemCount()` to VirtualizedList. This change makes it return `0` instead, to signify there are no valid items to attempt to accces.

There are a set of invariants on properties passed to FlatList, to curb incorrect types at runtime, but there is existing code which runs into the condition.

Changelog:
[Internal][Fixed] - Guard FlatList getItemCount() against non-array data

Reviewed By: javache

Differential Revision: D38198351

fbshipit-source-id: 9efd0df7eeeba17078e2c838d470c4b0d621b9a0
  • Loading branch information
NickGerleman authored and facebook-github-bot committed Jul 28, 2022
1 parent f8e1fed commit d574ea3
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion Libraries/Lists/FlatList.js
Expand Up @@ -511,7 +511,7 @@ class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
};

_getItemCount = (data: ?Array<ItemT>): number => {
if (data) {
if (Array.isArray(data)) {
const numColumns = numColumnsOrDefault(this.props.numColumns);
return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;
} else {
Expand Down

1 comment on commit d574ea3

@whalemare
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This commit cause FlatList not render any Realm objects 😀

Please sign in to comment.