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