报错
VirtualizedLists should never be nested inside plain ScrollViews....
背景:
开发一个swipecell左滑删除的组件,使用了一个第三方库:react-native-swipe-list-view 该库基于reactnative的flatlist实现。
问题出现:
问题出现了,吭哧吭哧地接入这个包的时候发现页面报了个错误 :VirtualizedLists should never be nested inside plain ScrollViews....
报错分析:
嗯哼?赶紧去搜一把这是啥。Virtualized Lists也就是我们常说的虚拟列表,虚拟列表只让可视区域范围内的 Cell 渲染,超出可视区域范围内的 Cell 销毁来减少渲染带来的内存开销问题。而FlatList 和 SectionList 都是用的 Virtualized Lists。
当我们把 Virtualized List 放在 ScrollView 中,ScrollView 是要全部渲染的,那么 Virtualized List 无法计算出当前哪些 Cell 是展示在可视区域范围内而会选择渲染所有的 Cell,so ! Virtualized Lists的优势就显现不出来了。这个时候就会抛出上述警告。o(╥﹏╥)o
查找原因:
上述解释通俗地说就是flatlist不能嵌套ScrollView!rn页面是默认不滚动的,若想实现页面滚动需要使用scrollview包裹内容。检查了自己的代码没发现加了scrollview,最后的最后总算找到了taro中有disableScroll配置项,disableScroll默认配置了页面滑动(配置在config.ts页面中)也就是说taro外层是有一个scrollview包裹页面于是就导致上述问题发生。下次如果使用taro开发rn应用的时候就要注意这个问题啦!📢
总结:
先入为主会找不到解决的方向哦。完了。溜~
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。