Прокрутка бесконечности FlatList в моем коде не работает - PullRequest
0 голосов
/ 15 мая 2019

Я использую RN для разработки приложения, одним из компонентов является список данных, я выполняю интеграцию плоского списка, чтобы сформировать список ...

<FlatList data={this.state.tickets}
         keyExtractor={(item,index) => item._id + Math.random()}
         refreshing={this.state.refreshing}
         onRefresh={this.handleRefresh}
         onEndReached={this.handleLoadMore}
         onEndReachedThreshold={0.5}
         ListFooterComponent={this.footerList}
         renderItem={({item}) => 
             <View style={styles.childOneFlat}>
                 <View style={styles.childTwoFlat}>
                     <TouchableOpacity style={styles.childThreeFlat} 
                         onPress={() => {this.goToTask(item)}}>
                             <View style={styles.childFourFlat}>
                                 <Text style={styles.childFiveFlat}> 
                                 {'Ticket N° '+item.taskId}</Text>
                                 <Text style={styles.childSixFlat}>></Text>
                             </View>
                    </TouchableOpacity>
                </View>            
            </View>}>
</FlatList>

Извините за плохой отступ ...

мои методы:

handleRefresh = () => {
    this.setState({
        page:1,
        refreshing:true
    }, () => {
        this.getTickets();
    });
};

handleLoadMore = () => {
    this.setState((prevStates,nextProps) => ({page: prevStates + 1, 
    loadingMore:true}), () => {this.getTickets();});
};

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

    return (
      <View
        style={{
          position: 'relative',
          width: width,
          height: height,
          paddingVertical: 20,
          borderTopWidth: 1,
          marginTop: 10,
          marginBottom: 10,
          borderColor: colors.veryLightPink
        }}
      >
        <ActivityIndicator animating size="large" color='blue'/>
      </View>
    );
  };

handleRefresh = () => {
    this.setState(
        {
            page: 1,
            refreshing: true
        },
        () => {
            this._fetchAllBeers();
        }
    );
};

Кто-то может увидеть ошибку, которую я не смог найти.

Я бы хотел включить бесконечную прокрутку в список, благодаря тому, кто ответит с этого момента ...

1 Ответ

0 голосов
/ 16 мая 2019

Вы проверяли, обновляется ли ваша data опора?this.state.tickets всегда должен добавлять следующие элементы, полученные из вызова API this.getTickets();, а не переписывать весь массив.

...