react-native flatlist上拉加载onEndReached不能正确触发的解决办法

148次阅读

共计 313 个字符,预计需要花费 1 分钟才能阅读完成。

问题

在写 flatlist 复用组件时,调用的时候如果父组件是不定高的组件,会造成组件无法显示

如果父组件样式{flex:1},则会出现下拉方法频繁触发或不正常触发的问题(我这里出现的问题是在列表第 6 个项目在底部时,缓慢上拉会多次触发 flatlist 的 onEndReached 监听)

原因

推测是因为 {flex:1} 不适合做动态高度组件的父组件样式,会错误的判断高度导致 onEndReached 多次不正常触发。

解决

可以把列表上方所需的组件做成 header 属性传入组件当做 flatlist 的头部组件,这样就可以直接调用封装好的组件。

也可以把父元素的样式设成{height: ‘100%’},这样就可以正确的触发 onEndReached 监听。

正文完
 0