共计 810 个字符,预计需要花费 3 分钟才能阅读完成。
报错
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 利用的时候就要留神这个问题啦!📢
总结:
先入为主会找不到解决的方向哦。完了。溜~