0
votes

I'm new in react-native. On one of my screen I'm using flatlist on 4 places but the last flatlist which is displaying at the bottom of screen is not scrolling so I add the scrollView then its working fine but displaying me that error

VirtualizedLists should never be nested inside plain ScrollViews with the same orientation because it can break windowing and other functionality - use another VirtualizedList-backed container instead.

code

  const Header = () => {
    return (
      <View>
      
        <SafeAreaView>
          <View style={styles.sellersheaderWrapper}>
            <View style={styles.sellersheaderTitle}>
              <Text style={styles.sellersheaderTitleText}>
                Featured Sellers
              </Text>
            </View>
            <View>
             {
                 isFeatureSeller == '' ?
                 <View style={[styles.noSpecialOfferCard, {paddingVertical:hp('2%')}]} >
                     <Text style={[styles.noSpecialOfferCardText, {fontSize:hp('2%')}]}>Currently, No Feature Sellers</Text>
                 </View>
                 :
                 <View>
                <FlatList
                  data={isFeatureSeller}
                  renderItem={renderCategoryItem}
                  keyExtractor={item => item.id}
                  horizontal={true}
                  showsHorizontalScrollIndicator={false}
                />
              </View>
             }
            </View>
          </View>
        </SafeAreaView>
        <View style={styles.searchWrapper}>
          <View style={styles.dobregisterFormWrapperText}>
            <TextInput
              style={styles.dobregisterInputStyleText}
              value={search}
              onChangeText={(text) => searchFilterFunction(text)}
              onClear={(text) => searchFilterFunction('')}
              placeholder="Search ..."
            />
            <View>
              <SearchIconSvg />
            </View>
          </View>
        </View>
      </View>
    );
  };
  const Footer = () => {
    return (
      <View>
        <View style={styles.specialOfferCardWrapper}>
          <View style={styles.specialOfferCardTextWrapper}>
            <Text style={styles.specialOfferCardText}>Special Offer Cards</Text>
          </View>
          {isSpecialCards == '' ? (
            <View style={styles.noSpecialOfferCard}>
              <Text style={styles.noSpecialOfferCardText}>
                No Special Offer cards
              </Text>
            </View>
          ) : (
            <FlatList
              data={isSpecialCards}
              renderItem={renderCards}
              keyExtractor={(item, index) => index.toString()}
              horizontal={true}
              showsHorizontalScrollIndicator={false}
              style={styles.specialCards}
            />
          )}
          <View
            style={[
              styles.specialOfferCardTextWrapper,
              {paddingBottom:  isFeatureSeller == '' ? hp('17%')  :hp('10%') },
            ]}>
            <Text style={styles.specialOfferCardText}>Cards</Text>
            <FlatList
              data={isCard}
              renderItem={renderNormalCards}
              keyExtractor={item => item.id}
              showsVerticalScrollIndicator={false}
              scrollEnable={true}
            
            />
          </View>
        </View>
      </View>
    );
  };

  const MainData = () => {
    return(
      <View>
              {search == '' ? (
        <ScrollView>
        <View >
            <Header />
            <Footer />
        </View>
        </ScrollView>
      ) : (
        <View >
          <FlatList
            data={filteredDataSource}
            renderItem={renderCategoryItemSearch}
            keyExtractor={(item, index) => index.toString()}
            ListHeaderComponent={Header}
          />
        </View>
      )}
      </View>
    )
  }
  return (
    <View style={styles.container}>

      {
        loading == true ?
        <View style={{marginVertical:hp('45%')}} >
            <ActivityIndicator size="large" color={colors.primary}  /> 
        </View>
        :
        
          <MainData/>
        
      }
      <View style={styles.bottomNavWrapper}>
        <TouchableOpacity
          style={styles.storeWrapper}
          onPress={() => navigation.navigate('BuyerDashboard')}>
          <View style={styles.storeIcon}>
            <DashboardReverseSvg />
          </View>
        </TouchableOpacity>
        <View style={styles.dashboardWrapper}>
          <View style={styles.dashboardIcon}>
            <BuyerStoreReverseSvg />
          </View>
          <View style={styles.dashboardText}>
            <Text style={styles.dashboardTextfont}>Storefront</Text>
          </View>
        </View>
      </View>
    </View>
  );
};

export default Store;

I want to scroll at here.

 <ScrollView>
        <View >
            <Header />
            <Footer />
        </View>
        </ScrollView>
1

1 Answers

0
votes

You can use nestedScrollEnabled prop on your FlatList component

https://reactnative.dev/docs/scrollview#nestedscrollenabled