Как инициировать рендеринг, когда содержимое Flatlist меньше, чтобы иметь прокрутку - React Native

Я пытаюсь сделать отфильтрованную бесконечную прокрутку, для этого я использую плоский список. Изделия имеют переменную высоту. Если в выбранном списке есть только один элемент или нет элемента, onEndReached не срабатывает, поскольку прокрутки нет. Итак, я не могу получить новые предметы. Любое решение для этого?

class Vehicle extends Component{

   loadMoreVehicles = () =>this.props.vehicleActions.fetchMoreVehicles 
  (this.state.page);

  renderItem = ({ item,index }) => {
      return  (this.filterVehicle(item))?  <VehicleList item ={item}/>:null
  }

 render(){
    <VehicleView  vehicles ={this.props.vehicles}/>
 }
 }


 const VehicleView =(props)=>(

  <FlatList data={props.vehicles}
            keyExtractor={(item, index) => index}
            onEndReached={props.loadMoreVehicles}
            onEndThreshold={100}
            removeClippedSubviews={false}
            renderItem={props.renderItem}
            initialNumToRender={10}
            extra={props}
            windowSize={10} />
 )

this.filterVehicle(item) будет возвращать true/false в зависимости от того, должен ли элемент отображаться или нет.

заранее спасибо


person Shalini    schedule 28.04.2018    source источник
comment
Как вы можете получить больше предметов, если есть только один предмет? Вы можете добавить условие после получения данных, которое проверяет, равна ли длина ‹ 2, и выдает новый запрос.   -  person user5470921    schedule 28.04.2018
comment
Я извлекаю 10 элементов за раз, и, поскольку я их фильтрую, может быть только 1-2 или ни одного результата, который соответствует критериям фильтра в 10 элементах. Вот почему мне нужно получить больше данных. Я добавляю упрощенную версию кода   -  person Shalini    schedule 29.04.2018


Ответы (1)


Было бы лучше, если бы вы предоставили более подробную информацию с соответствующими фрагментами кода. Но все же из того, что я понял, кажется, что вы хотите динамически устанавливать поведение прокрутки FlatList в зависимости от размера содержимого. Вы можете использовать onContentSizeChange для этого. Очень хорошая статья доступна на medium о том, как это реализовать.

person Rahul Bansal    schedule 28.04.2018
comment
Поведение прокрутки уже обрабатывается flatlist. Я хочу инициировать другой рендеринг, когда результат фильтра равен нулю или меньше 3. - person Shalini; 29.04.2018