Как загрузить новые данные в Flatlist как вверх, так и вниз на EndReached в React Native?

Я использую Flatlist с React Native для Android, где мне нужно динамически загружать новые данные при достижении конца Flatlist в обоих положениях «Вверх» и «Вниз» Flatlist (или «Влево» и «Вправо» в горизонтальном виде).

Однако Flatlist имеет только встроенную функцию для выполнения каких-либо действий в onEndReached в положении «Вниз» (или «Вправо» по горизонтали).

Вы можете обойти проблему, обнаружив, прокручивает ли пользователь влево или вправо, но когда я добавляю новые данные в состояние в положение «Вверх», чтобы они помещались в начало массива, Flatlist ошибается и не прокручивается, как при добавлении новых данных. в конец массива.

Хотя он загружает новые данные в массив, просмотр дает сбой и не прокручивается.

Теперь я просто помещаю данные в начало массива следующим образом:

this.setState({
  data: [
    ...newData,
    ...this.state.data
  ]
})

TL; DR: есть ли способ добавить новые данные в массив в состоянии к началу массива, чтобы прокрутка казалась естественной, а просмотр не прерывался из-за изменения позиций в состоянии / индексе?


person hepepnyt    schedule 18.03.2019    source источник
comment
pull to refresh может вам помочь, onRefresh и refreshing - это реквизиты, которые помогут вам заставить это работать   -  person Jaydeep Galani    schedule 19.03.2019


Ответы (1)


Взгляните на react-waypoint.

https://github.com/civiccc/react-waypoint

Вы можете поставить вверху и одну внизу и разобраться с каждым соответствующим образом.

person Bob Light    schedule 22.08.2019
comment
Ссылка на решение приветствуется, но убедитесь, что ваш ответ полезен и без нее: добавьте контекст вокруг ссылки, чтобы ваш коллега пользователи будут иметь некоторое представление о том, что это такое и почему это есть, а затем процитировать наиболее релевантную часть страницы, на которую вы ссылаетесь, в случае, если целевая страница недоступна. Ответы, которые представляют собой не более чем ссылку, могут быть удалены. - person brass monkey; 22.08.2019