#react-native #pagination #flatlist
Вопрос:
У меня есть экран, на котором есть такой плоский список (я заменил нерелевантный код, ...
чтобы сделать вопрос как можно более легко читаемым).:
<FlatList
data={messages}
keyExtractor={item => item.id}
ListFooterComponent={...}
onEndReachedThreshold={0}
onEndReached={onNextPageLoadHandler}
refreshControl={...}
renderItem={...}
/>
Проблема в том, что если бы у меня был очень короткий список, который полностью помещается на одном экране, то сразу после того, как пользователь приземляется на экране onEndReached
, запускается. Это приводит к автоматической загрузке следующей партии сообщений, чего я не хочу. Я хотел бы, чтобы это onEndReached
срабатывало, когда пользователь достигает конца списка и когда пользователь фактически выполняет прокрутку вручную.
т.е.
- Всего страниц сообщений = 2
- Количество сообщений, помещающихся на одной странице = 2
- Общее количество сообщений = 4
Проблема: Когда пользователь впервые появится на моем экране, он увидит первые 2 сообщения, но, поскольку они уже находятся в конце списка (даже если они не прокрутились до конца списка), onEndReached
запускается, и следующие 2 сообщения автоматически загружаются.
Желаемое поведение: Когда пользователь впервые появляется на экране, он должен увидеть первые 2 сообщения. Однако следующие 2 сообщения не должны загружаться до тех пор, пока пользователь не окажется в конце списка И когда он фактически выполнит прокрутку, когда он окажется в нижней части списка.
Я не уверен, что эту проблему можно решить, но я ценю любое понимание!
Комментарии:
1. почему бы не использовать onScroll, чтобы определить, прокручивается ли он снизу, но я не понимаю, как пользователи могут прокручивать его, поскольку содержимое не отображается на одном экране. или вы можете просто попробовать установить onEndReachedThreshold={1}, надеюсь, это вам поможет