我在一个组件中有 3ListView
个ScrollView
组件,如下所示:
<ScrollView>
<Header />
<ListView onEndReached={() => alert('load more 1')}/>
<ListView onEndReached={() => alert('load more 2')}/>
<ListView onEndReached={() => alert('load more 3')}/>
<Footer />
</ScrollView>
该Header
组件有一些共同的内容,也有 3 个选项卡,它们触发显示各自的ListView
问题是ListView
永远onEndReached={() => alert('load more 1')}
不会运行警报,所以当我向下滚动并点击列表视图的末尾时,我永远无法加载更多。删除包装ScrollView
并且警报运行,但 commonHeader
不会滚动,因为我们刚刚删除了 wrapping ScrollView
。标题需要随着列表视图滚动,这就是为什么我将需要滚动的所有内容都包装在ScrollView
.
重要提示:对于这种情况,
我不能真正使用ListView
with 。renderHeader={this.header}
因为,即使会滚动,它也会在每次 a渲染时Header
重新渲染 commonHeader
和 3 个选项卡,而不是一次。因此,每次为每个新的重新渲染都不会为应用程序削减它。ListView
ListView
Header
ListView
寻找解决此问题的方法,其中Header
使用 listviews 滚动,并且onEndReached
为 visible 触发ListView
。