react-native flatlist 上拉加载onEndReached方法频繁触发的问题
程序员文章站
2022-03-18 18:33:45
问题 在写flatlist复用组件时,调用的时候如果父组件是不定高的组件,会造成组件无法显示 如果父组件样式{flex:1},则会出现下拉方法频繁触发或不正常触发的问题(我这里出现的问题是在列表第6个项目在底部时,缓慢上拉会多次触发flatlist的onEndReached监听) 原因 推测是因为{ ......
问题
在写flatlist复用组件时,调用的时候如果父组件是不定高的组件,会造成组件无法显示
如果父组件样式{flex:1},则会出现下拉方法频繁触发或不正常触发的问题(我这里出现的问题是在列表第6个项目在底部时,缓慢上拉会多次触发flatlist的onEndReached监听)
原因
推测是因为{flex:1}不适合做动态高度组件的父组件样式,会错误的判断高度导致onEndReached多次不正常触发。
解决
可以把列表上方所需的组件做成header属性传入组件当做flatlist的头部组件,这样就可以直接调用封装好的组件。
也可以把父元素的样式设成{height: '100%'},这样就可以正确的触发onEndReached监听。