关于reactnative:tarorn开发scrollview不能嵌套flatlist

35次阅读

共计 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 利用的时候就要留神这个问题啦!📢

总结:

先入为主会找不到解决的方向哦。完了。溜~

正文完
 0