我有一个包含复杂计算的大列表,而Flatlist
确实会使我的应用程序速度变慢,并且在scrolling
时响应会下降。此外,我在互联网上发现并使用了很多包,但它们只适用于特定的height
,但我的items height
是动态的。
我对Flatlist
使用了所有有用的方法,但滚动仍然很慢,甚至有时会使我的应用程序崩溃,你能给我看一个本地updated
回收器列表视图吗。
我的列表发生了什么
它是一个类似聊天的应用程序,因此有图像、短信、视频和贴纸,还有一些状态,如seen
和delevered
,当消息被"看到"时,特定的消息项目会更新为单个项目,例如最后一条消息,因此它会被更新。
我的当前代码有380个项目:
<FlatList data={arrayItems}
initialNumToRender={1}
renderItem={renderItem}
keyExtractor={keyExtractor}
style={{ width: '100%', height: '100%' }}
/>
FlatList是Android Studio RecyclerView 的对应产品
平面列表数据呈现缓慢的原因可能有很多。1( 如果你有大量的数据,解决这个问题的一种方法是分部分提取数据。例如,你最初可以提取并渲染20个initialNumToRender列表项,然后当用户滚动时,使用onEndReachdThreshold调用api来提取下20条记录,调用onEndReached来获取下一批数据。
2( 如果使用类组件来显示平面列表,那么如果数据很大,最好使用PureComponent。
3( 使用速度功能组件。
此外,如果您正在处理大量数据,最好使用像redux这样的状态管理库来存储数据。