如何使用 react-native 呈现大型动态列表视图

How to render a big dynamic list view with react-native

我有一个 CMS 页面,其中可能包含商品或图片层。图像可能没有特定的比例或大小。 并且产品组件应该支持添加到购物车。

我正在使用 FlatList 来呈现这些数据。但这似乎不是一个好的选择,因为渲染过程很慢,而且主线程似乎会在第一次渲染时被阻塞。而且快速滚动的时候,会有一些空块。

看了Flipkartrecyclerlistview的文档,感觉每行一定的布局大小,似乎不是一个好的选择,而我的楼层图片是没有的。

有没有建议用 RN 呈现这样的 CMS 页面?

FlatList 本身就是一个 Slow 组件。从内存的角度来看,它有巨大的收益,但执行速度很慢。

尝试对大型列表使用 https://github.com/bolan9999/react-native-largelist 包,这对我来说似乎表现更好。

@Shahen Hovhannisyan 的回答是个好建议。 但考虑到 react-native-largelist 的评分和星级较低。我没有在我们的项目中导入它。

我的解决方案是继续使用 react-native 的 FlatList。并使用 React.memo 包装项目或使用 PureComponent 而不是 Component 以避免浪费渲染。我还为图像提供了一定的布局。根据我的经验,这将增加 FlatList 的渲染体验。将 Image 替换为 react-native-fast-image 也是一个有效的改进。这将导致较低的内存使用率和更好的缓存。顺便说一句,对于 react-native 0.59,使用 react-native-fast-image 6.1.1 最新版本仅支持 RN 0.60+。