A performant interface for rendering simple, flat lists, supporting the most handy features:
If you need section support, use <SectionList>.
Minimal Example:
More complex example demonstrating PureComponent usage for perf optimization and avoiding bugs.
onPressItem handler, the props will remain === and PureComponent will
prevent wasteful re-renders unless the actual id, selected, or title props change, even
if the inner SomeOtherWidget has no such optimizations.extraData={this.state} to FlatList we make sure FlatList itself will re-render
when the state.selected changes. Without setting this prop, FlatList would not know it
needs to re-render any items because it is also a PureComponent and the prop comparison will
not show any changes.keyExtractor tells the list to use the ids for the react keys.This is a convenience wrapper around <VirtualizedList>,
and thus inherits its props (as well as those of ScrollView) that aren't explicitly listed
here, along with the following caveats:
PureComponent which means that it will not re-render if props remain shallow-
equal. Make sure that everything your renderItem function depends on is passed as a prop
(e.g. extraData) that is not === after updates, otherwise your UI may not update on
changes. This includes the data prop and parent component state.key prop on each item and uses that for the React key.
Alternatively, you can provide a custom keyExtractor prop.Also inherets ScrollView Props, unless it is nested in another FlatList of same orientation.
Scrolls to the end of the content. May be janky without getItemLayout prop.
Scrolls to the item at the specified index such that it is positioned in the viewable area
such that viewPosition 0 places it at the top, 1 at the bottom, and 0.5 centered in the
middle. viewOffset is a fixed number of pixels to offset the final target position.
Note: cannot scroll to locations outside the render window without specifying the
getItemLayout prop.
Requires linear scan through data - use scrollToIndex instead if possible.
Note: cannot scroll to locations outside the render window without specifying the
getItemLayout prop.
Scroll to a specific content pixel offset in the list.
Check out scrollToOffset of VirtualizedList
Tells the list an interaction has occured, which should trigger viewability calculations, e.g.
if waitForInteractions is true and the user has not scrolled. This is typically called by
taps on items or by navigation actions.
Displays the scroll indicators momentarily.
Improve this page by sending a pull request!