VirtualizedList

VirtualizedList

为更方便的组件<FlatList>和<SectionList>组件提供基础实现,这些组件也有更好的记录。一般来说,只有在需要比FlatList提供更多的灵活性时才应该使用它,例如用于不可变数据而不是普通数组。

虚拟化通过维护活动项目的有限渲染窗口并用适当大小的空白空间替换渲染窗口之外的所有项目,大大提高了内存消耗和大型列表的性能。窗口适应滚动行为,如果项目距离可见区域较远,或者使用hi-pri以最小化看到空白区域的可能性,则项目以低pri(在任何正在运行的交互之后)递增呈现。

Some caveats:

  • 当内容滚出渲染窗口时内部状态不会保留。确保所有数据都在项目数据或外部商店(如Flux,Redux或Relay)中捕获。

  • PureComponent意味着如果props保持浅浅平等,它不会重新渲染。确保你的renderItem函数所依赖的所有东西都作为一个道具(eg extraData)传递,而不是===在更新之后传递,否则你的UI可能不会在更改时更新。这包括dataprop和父组件状态。

  • 为了约束内存并启用平滑滚动,内容将异步呈现在屏幕外。这意味着可以以比填充率更快的速度滚动,并立即看到空白内容。这是一种权衡,可以根据每个应用程序的需要进行调整,并且我们正在努力在幕后改进它。

  • 默认情况下,列表key在每个项目上查找一个道具并将其用于React键。或者,您可以提供自定义keyExtractor道具。

道具

disableVirtualization?:

first: number

horizontal?:

initialNumToRender?:

keyExtractor?:

last: number

maxToRenderPerBatch?:

onEndReachedThreshold?:

scrollEventThrottle?:

updateCellsBatchingPeriod?:

windowSize?:

方法

scrollToEnd(params?: object)

scrollToIndex(params: object)

scrollToItem(params: object)

scrollToOffset(params: object)

滚动到列表中的特定内容像素偏移量。

Param offset期望偏移量滚动到。如果horizontal是,则偏移量是x值,在任何其他情况下偏移量都是y值。

Param animatedtrue默认)定义列表是否应在滚动时执行动画。

recordInteraction()

flashScrollIndicators()

类型定义

道具

类型:

IntersectionTypeAnnotation