问题:
接手了一个rn项目,真机上测试发现一个bug:商品列表页,上拉加载更多商品,加载了二十多个商品,屏幕滑动就开始出现明显的顿挫感,android出现商品图加载异常,ios还偶尔会出现闪退。
直接定位到这个商品列表,发现使用的是FlatList组件,一个列表懒加载组件,检查了下,没发现问题,然后纵观整个页面,这个页面并不仅仅只有这一个列表,上面依次还有兑换区,签到区,搜索区,然后最外层包了一个ScrollView组件,用来下拉刷新。。。。乍一看,没啥问题。后来尝试把最外层的滚动组件注释掉,好家伙,bug直接消失。
bug定位成功,然后就该想怎么处理了。
解决:
研究了下两个组件,文档说明FlatList组件拥有ScrollView的所有props,而且可以有单独的头部组件(ListHeaderComponent),所以我直接将上面的兑换区,签到区,搜索区,封装到一起传给了FlatList组件的ListHeaderComponent,将下拉刷新回调设置在FlatList组件中refreshControl自定义下拉刷新组件上。
react-native中 不要将ScrollView 组件 和 FlatList 组件嵌套使用
最新推荐文章于 2022-10-28 11:29:59 发布
在接手的RN项目中,商品列表页在真机上出现性能问题,包括Android端图片加载异常和iOS端的偶发闪退。问题源于FlatList组件与外层ScrollView的结合使用。通过移除ScrollView,顿挫感和bug消失。解决方案是将页面上方的兑换区、签到区、搜索区封装为FlatList的ListHeaderComponent,并在FlatList内实现下拉刷新功能,成功解决了性能问题。
摘要由CSDN通过智能技术生成