我的容器是一个滚动 View ,里面是一个平面列表,它从服务器加载数据。
平面 list :
<VirtualizedList
ListEmptyComponent={<NoData />}
data={data}
getItem={(items, index) => items.get(index)}
getItemCount={(items) => items.size}
keyExtractor={(item, index) => String(index)}
renderItem={this._renderItem}
refreshControl={
<RefreshControl
refreshing={loading}
onRefresh={this._onRefresh.bind(this)}
/>
}
onEndReached={this.handleLoadMore}
onEndReachedThreshold={0.1}
onMomentumScrollBegin={() => {
Log('onMomentumScrollBegin fired!')
this.onEndReachedCalledDuringMomentum = false;
}}
/>
其中
handleLoadMore
是:handleLoadMore = () => {
Log('handleLoadMore fired!');
if (!this.onEndReachedCalledDuringMomentum) {
// fetch data..
this.onEndReachedCalledDuringMomentum = true;
}
}
问题是
handleLoadMore
从未调用过,onMomentumScrollBegin
也从未调用过。如何解决这个问题?
最佳答案
实际上你不需要使用 Content
或 ScrollView
因为 FlatList 有 ListFooterComponent
和 ListHeaderComponent
如果您确实需要在 ScrollView
中使用 FlatList,则将样式和内容 contentContainerStyle 添加到您的 ScrollView
中,或者如果您使用 native-base,则在 Content
中
<ScrollView
...
style={{flex: 1}}
contentContainerStyle={{flex: 1}}
...
/>
然后,如果您想在 FlatList 循环之外使用标题组件。然后在 Flatlist 中使用
ListHeaderComponent={() => <SomeHeader />
。关于react-native - 在 ScrollView onEndReached 内 react Native FlatList 从未调用过,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51319922/