javascript - Spinner 在 onEndReachedThreshold Flatlist 中不起作用

标签 javascript android react-native infinite-scroll react-native-flatlist

这是我的平面列表代码:

<FlatList style={styles.scrollView} onScroll={(event) => this.handleOnScroll(event) } scrollEventThrottle={16} ref='scrollUp'
    data={this.state.data}
    keyExtractor={this._keyExtractor}
    renderItem={({item}) =>(
        <ScrollView style={styles.scrollView} contentContainerStyle={styles.contentContainer} onScroll={(event) => this.handleOnScroll(event) } scrollEventThrottle={16} ref='scrollUp'>
            {this._getHomeComponent(item)}
        </ScrollView>
    )}
    onEndReached={this._handleLoadMore}
    onEndReachedThreshold={0.5}
    refreshControl={
        <RefreshControl
            refreshing={this.state.refreshing}
            onRefresh={this._onRefresh}
            title=""
            tintColor="#86bc40"
            titleColor="#86bc40"
        />
    }
/>

所以我想在内容末尾拉起时显示微调器,这是我的 _handleLoadMore 函数:

_handleLoadMore = () => {
    return(
        <Spinner/>
    )
}

我试过在内容末尾向上拉,但没有出现微调器,这是什么问题?我正在使用安卓设备

谢谢

最佳答案

您需要使用一个名为 ListFooterComponent 的不同 Flatlist 属性:

<FlatList style={styles.scrollView} onScroll={(event) => this.handleOnScroll(event) } scrollEventThrottle={16} ref='scrollUp'
data={this.state.data}
keyExtractor={this._keyExtractor}
renderItem={({item}) =>(
    <ScrollView style={styles.scrollView} contentContainerStyle={styles.contentContainer} onScroll={(event) => this.handleOnScroll(event) } scrollEventThrottle={16} ref='scrollUp'>
        {this._getHomeComponent(item)}
    </ScrollView>
)}
onEndReached={this._handleLoadMore}
onEndReachedThreshold={0.5}
refreshControl={
    <RefreshControl
        refreshing={this.state.refreshing}
        onRefresh={this._onRefresh}
        title=""
        tintColor="#86bc40"
        titleColor="#86bc40"
    />
}
ListFooterComponent={this.renderFooter}
/>

你的 renderFooter 可能看起来像这样:

renderFooter = () => {
    if (!this.state.showSpinner) return null

    return (
      <Spinner/>
    )
}

onEndReached 应用于将更多数据加载到 this.state.data 并将 this.state.showSpinner 设置为 true。加载更多数据后,将 showSpinner 设置为 false,页脚应该会消失。

关于javascript - Spinner 在 onEndReachedThreshold Flatlist 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51997647/

相关文章:

javascript - 如何获取ag-Grid中过滤的行数?

javascript - Angular : Watch for class change not working

javascript - 如何使不和谐机器人正确自动大写字符串的第一个字母?正则表达式

java - Android ListView 中包含的 EditText 内容未保存

reactjs - React Native "box model"是如何工作的?

javascript - 从此数组中获取过滤后的数组(首字母相同的值)

java - 这行代码有语法错误吗?

带有 Switch onCheckedListener 的 Android ListView 很奇怪

android - react-native 链接导致重新链接 (Android)

javascript - 如何在 if 语句中渲染某些内容 React Native