react-native中 不要将ScrollView 组件 和 FlatList 组件嵌套使用

问题
接手了一个rn项目,真机上测试发现一个bug:商品列表页,上拉加载更多商品,加载了二十多个商品,屏幕滑动就开始出现明显的顿挫感,android出现商品图加载异常,ios还偶尔会出现闪退。
直接定位到这个商品列表,发现使用的是FlatList组件,一个列表懒加载组件,检查了下,没发现问题,然后纵观整个页面,这个页面并不仅仅只有这一个列表,上面依次还有兑换区,签到区,搜索区,然后最外层包了一个ScrollView组件,用来下拉刷新。。。。乍一看,没啥问题。后来尝试把最外层的滚动组件注释掉,好家伙,bug直接消失。
bug定位成功,然后就该想怎么处理了。
解决
研究了下两个组件,文档说明FlatList组件拥有ScrollView的所有props,而且可以有单独的头部组件(ListHeaderComponent),所以我直接将上面的兑换区,签到区,搜索区,封装到一起传给了FlatList组件的ListHeaderComponent,将下拉刷新回调设置在FlatList组件中refreshControl自定义下拉刷新组件上。

你可能感兴趣的:(react,native,react.js,react,native)