RenderFooter вызывается бесконечно - PullRequest
0 голосов
/ 04 октября 2019

Когда я достигаю дна списка утилит FlipKarts, он тысячи раз входит в бесконечный цикл, вызывающий renderFooter, и я больше не могу прокручиваться вверх ... Не знаю, что это может быть. Следует прокрутить вниз, а затем просто подпрыгнуть вверх или просто остаться внизу. Вместо этого он застревает, и я ничего не нашел в github или stackoverflow.

    renderFooter() {
        if(this.state.outPosts == false) {
            return <View style={{
                alignContent:'center', 
                justifyContent:'center', 
                alignItems:'center', 
            }}>
                <ActivityIndicator 
                    style={{
                        marginTop:15*factor_ver,
                        marginBottom:15*factor_ver,
                    }} 
                    size={"small"}
                    color={'#9b9b9b'}
                />
            </View>
        }
        else if(this.state.outPosts == true) {
            return <View style={{
                        height:140*factor_hor, 
                        marginTop:20, 
                        alignContent:'center', 
                        justifyContent:'center', 
                        alignItems:'center', 
                    }}>
                        <Text style={{textAlign:'center', fontSize:22*factor_hor, fontFamily:'Avenir Next', color:'#9b9b9b',}}>
                            No posts! :(
                        </Text>
                        <View style={{flex:1,}}></View>
                        <Block width={60*factor_hor}
                            height={60*factor_hor}
                            style={{
                                justifyContent:'center',
                                alignContent:'center',
                                flex: 1,
                        }}
                        />
                        <View style={{height:30}}></View>
                    </View> 
        }
    }


                    <RecyclerListView 
                        style={{flex:1, backgroundColor:'#f7f7f7', paddingTop:8*factor_hor,}}
                        extendedState={this.state}
                        rowRenderer={this._renderRow} 
                        dataProvider={this.state.dataProvider}
                        layoutProvider={this._layoutProvider}
                        showsVerticalScrollIndicator={false}
                        onEndReached={() => this.fetchPosts()}
                        onEndReachedThreshold={500}
                        renderFooter={this.renderFooter}
                        onScroll={(e) => this.handleScroll(e)}
                        scrollThrottle={250}
                        refreshControl={
                        <RefreshControl
                            tintColor={'white'}
                            refreshing={false}
                            onRefresh={() => { 
                                this.setState({isLoad:true}), this.refresh_feed()}} 
                        />}
                    />

1 Ответ

0 голосов
/ 04 октября 2019

здорово, так что я собираюсь оставить это здесь, потому что больше ничего я не смог найти, чтобы объяснить это. Если вы используете React native FlipKart recyclerlistview и вы визуализируете пустые представления, то при прокрутке вниз происходит такой сбой, когда вы не можете прокрутить вверх и renderFooter вызывается бесконечно. Убедитесь, что в каждом отображаемом виде есть хотя бы контейнер для его заполнения.

...