javascript - 渲染列表反应原生
问题描述
我正在使用本机反应并具有带模态的父组件。当模式打开时,我的带有列表的子组件会重新呈现一次,但界面冻结约 1 或 2 秒取决于列表中的元素。列表的平均大小为 50 个元素。有什么问题?
<View style={styles.screenWrapper}>
<View style={styles.container}>
<List
onChoose={onChoose}
flightOffers={paginatedFlightOffers}
isRequesting={isLoadingOffers}
isLoadingMore={isLoadMore}
isLoadingResults={!paginatedFlightOffers.length}
currency={{ value: searchId?.searchId.currencyRates[body.currency], name: body.currency }}
showMoreFlightOffers={showMoreFlightOffers}
/>
</View>
<NativeModal
visible={isDetails}
onClose={onDetailsClose}
animationType="fade"
>
<View>
<Text>asdf</Text>
</View>
</NativeModal>
</View>
在List
组件内部有 FlatList,有时它会用我使用的建议写入注意消息。也许可以避免重新渲染,因为List
组件中的道具保持不变。我曾尝试使用 React.memo,但仍然存在重新渲染
解决方案
您应该尝试使用平面列表,因为它虚拟化列表它只呈现小批量元素并且更高效
推荐阅读
- android - 无法升级到 android 8.0 - 有哪些选项
- java - 使用带有多个比较器的比较器
- sql - SQL-group by 找出一个值是否只跟随某些其他值
- java - Drools Fusion 规则的滑动窗口
- angular - Ionic 3 打开外部 URL,其中 URL 由数组设置
- javascript - Javascript - 创建键被双引号包围的对象
- javascript - 如果再次单击模式,则将 AJAX 从插入修改为更新
- sql - 所有发货产品的 SQL Server 查询结果
- python - 如何在 Python Pandas 中将日期转换为季度而不重复前 5 年的季度?
- apache-kafka - 如果整个集群出现故障,Kafka 中的消费者组会发生什么?