Flatlist не содержит список всех элементов в react native?

#reactjs #react-native #react-redux #react-hooks #react-native-flatlist

Вопрос:

Я использовал npm react-native-parallax-header для эффекта параллакса. Внутри параллакса я использовал плоский список.

Каждый раз, когда я добавляю новую категорию, плоский список должен перезагружать элементы, полученные из API, но в моем случае в нем перечислены не все элементы. он показывает только последние два элемента массива. Мои значения массива содержат 10 элементов, но в нем отображаются только 2 элемента.

Вот код для flatlist:

      const renderContent = (label) => (
        <View style={{ backgroundColor: '#FBFCFF', top: -10 }}>

            <CategoryListView>
                {this.state.categories amp;amp; <FlatList
                    horizontal={false}
                    data={this.state.categories}
                    contentContainerStyle={{ paddingBottom: 20 }}
                    refreshControl={
                        <RefreshControl refreshing={refreshing} onRefresh={this.loadCategories} />
                    }
                    showsHorizontalScrollIndicator={false}
                    showsVerticalScrollIndicator={true}
                    renderItem={({ item }) => { return <CardActivity gotoCategoryDetail={this.gotoCategoryDetail} key={item._id} category={item}></CardActivity> }}
                    keyExtractor={(item) => item._id}
                />}
            </CategoryListView>

        </View>
    )
 

Вот код для списка категорий get

 loadCategories = async () => {
    this.setState({ refreshing: true });
    let categories = await this.props.getCategories();
    console.log(categories)
    this.setState({ categories, lastFetchCategoriesTime: new Date() });
};
 

Вот код конструктора

  constructor(props) {
    super(props);
    this.state = {
        categories: [],
        refreshing: false,
        scrollEnd: false,
    }

    this.loadCategories();
    const { navigation } = this.props;
    this.focusListener = navigation.addListener("focus", () => {
        // Call ur function here.. or add logic.    
        console.log(':::this will fire every time Page 1 receives navigation focus:::');
        this.loadCategories();
    });
};
 

Любая помощь будет очень признательна, пожалуйста…

Комментарии:

1. Всегда ли он показывает только 2? Или это просто когда вы перезагружаете категории?

2. Добавьте extraData реквизит в свой плоский список. Например, добавьте extraData={this.state.categories} в свой плоский список.

3. @diedu во время добавления новой категории это происходит

4. @KishanBharda Пробовал, что не помогло

5. @diedu есть какие-нибудь новости??