VirtualizedList
VirtualizedList
为更方便的组件<FlatList>和<SectionList>组件提供基础实现,这些组件也有更好的记录。一般来说,只有在需要比FlatList提供更多的灵活性时才应该使用它,例如用于不可变数据而不是普通数组。
虚拟化通过维护活动项目的有限渲染窗口并用适当大小的空白空间替换渲染窗口之外的所有项目,大大提高了内存消耗和大型列表的性能。窗口适应滚动行为,如果项目距离可见区域较远,或者使用hi-pri以最小化看到空白区域的可能性,则项目以低pri(在任何正在运行的交互之后)递增呈现。
Some caveats:
- 当内容滚出渲染窗口时内部状态不会保留。确保所有数据都在项目数据或外部商店(如Flux,Redux或Relay)中捕获。
- 这
PureComponent
意味着如果props
保持浅浅平等,它不会重新渲染。确保你的renderItem
函数所依赖的所有东西都作为一个道具(egextraData
)传递,而不是===
在更新之后传递,否则你的UI可能不会在更改时更新。这包括data
prop和父组件状态。
- 为了约束内存并启用平滑滚动,内容将异步呈现在屏幕外。这意味着可以以比填充率更快的速度滚动,并立即看到空白内容。这是一种权衡,可以根据每个应用程序的需要进行调整,并且我们正在努力在幕后改进它。
- 默认情况下,列表
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 animated
(true
默认)定义列表是否应在滚动时执行动画。
recordInteraction()
flashScrollIndicators()
类型定义
道具
类型:
IntersectionTypeAnnotation