as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持
跳转到主要内容
@amazon-devices/shopify__flash-list库提供一个高速度、高性能的列表组件。FlashList和React Native提供的FlatList类似。FlatList所支持的属性,FlashList也支持。您可以通过替换FlatList组件并添加estimatedItemSize属性来尝试FlashList。此外,FlashList通过添加其他属性来扩展支持的属性的列表,以帮助实现最佳性能。 此库由系统部署,可供适用于Vega的React Native应用使用,无需单独的安装过程。此库自动链接,您的应用在运行时会链接到该库。该库保证仅与为之构建的适用于Vega的React Native版本兼容。 升级应用的适用于Vega的React Native版本时,可以考虑升级其库依赖关系的最佳实践。

安装

  1. 在package.json文件中添加JavaScript库依赖项。
  2. 使用npm install命令重新安装依赖项。

示例

以下示例使用常用数据集和组件。为了避免示例中的重复,已删除一些项目。

FlashList组件示例

带有无限滚动功能的FlashList示例

MasonryFlashList示例

MasonryFlashList是包含许多列的FlashList组件。

API参考

请查看文档页面,了解有关此库和API参考的信息。 FlashList库涵盖了FlatList组件支持的所有属性。它如下文所列,增加了用于优化性能的额外属性。

组件

属性

FlashList在后台使用ScrollView,这和FlatList一样,因此继承了其属性。

已知问题和限制

并非React Native FlatList中支持的所有属性都在FlashList中有等效属性。FlashList不支持以下React Native属性。
  • 不支持的属性:
    • columnWrapperStyle
    • debug
    • listKey
    • onScrollToIndexFailed
    • windowSize
  • 不支持的方法:
    • flashScrollIndicators()
    • hasMore
    • getChildContext
    • getNativeScrollRef()​
    • getScrollRef
    • getScrollResponder()
  • 由于底层实现的差异,在移植到FlashList时不会有任何作用的属性:
    • disableVirtualization
    • getItemLayout
    • initialNumToRender
    • maxToRenderPerBatch
    • recordInteraction
    • setNativeProps
    • updateCellsBatchingPeriod
  • Vega目前不支持的属性:
    • refreshControl
    • refreshing

ItemSeparatorComponent已知问题

使用ItemSeparatorComponent时,在基于Perfetto轨迹进行滚动时,JS线程可能会出现问题。

key属性的使用

如果您使用key属性,FlashList无法再循环视图,这会移除Flashlist的性能优化。因此,从React Native FlatList迁移到Flashlist时,您应该从项目组件及其嵌套组件中移除所有key属性。 例如,下面的代码片段在Text和View组件中使用了key属性。
要优化Flashlist,请移除key属性,如下所示。
有关key属性的更多详细信息,请参阅Shopify文档(仅提供英文版)。

支持的版本

相关主题

支持的第三方库和服务
最后修改于 2026年10月26日