ReactNative的FlatList调用renderItem的次数比windowSize指定的次数多

时间:2017-06-29 05:59:47

标签: react-native react-native-flatlist

我使用FlatList呈现列表。我已配置为使用pagingEnabled={true}一次只显示一行,并渲染占用父级的完整大小的单元格。

我还设置了windowSize={2}initialNumToRender={1}。在我的renderItem功能中,我使用console.log记录每次通话。

当组件加载时,我在renderItem中看到我的数据数组中的每个项目都有一个日志语句,这意味着每个单元格都要进行预渲染。

结果是加载Component的延迟。不应该按照windowSize指定的数量来渲染单元格吗?

1 个答案:

答案 0 :(得分:0)

我有同样的问题,似乎FlatList和VirtualizedList中存在错误:https://github.com/facebook/react-native/issues/18142 但是我不知道为什么不想解决,我测试了一个仅渲染数字列表的小应用程序,但我遇到了同样的问题。我根本没有修复它,但是它帮助我提高了性能:https://facebook.github.io/react-native/docs/next/optimizing-flatlist-configuration

注意:是非常重要的工具:getItemLayout并放入removeClippedSubviews={true},因为它可以显着提高性能。

Pd:我建议您使用此组件:https://github.com/Flipkart/recyclerlistview

希望我能对您有所帮助。 ¡问候!