По порядку Middle Списки и производительность обновлено
Подгрузка следующей страницы
Вопрос
Расставьте шаги корректной подгрузки следующей страницы ленты.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1Ставим флаг загрузки и показываем индикатор в
ListFooterComponent - 2Проверяем, что загрузка не идёт и следующая страница существует
- 3Снимаем флаг загрузки
- 4Запрашиваем страницу по курсору последней загруженной
- 5Склеиваем страницы, убирая дубли по id, и сохраняем новый курсор
- 6
FlatListвызываетonEndReachedпри приближении к концу
Показать ответ и разбор
Коротко
Проверка перед запросом защищает от дублей при повторном onEndReached. Курсор вместо номера страницы делает пагинацию устойчивой к новым записям.
Правильный порядок
- 1
FlatListвызываетonEndReachedпри приближении к концу - 2Проверяем, что загрузка не идёт и следующая страница существует
- 3Ставим флаг загрузки и показываем индикатор в
ListFooterComponent - 4Запрашиваем страницу по курсору последней загруженной
- 5Склеиваем страницы, убирая дубли по id, и сохраняем новый курсор
- 6Снимаем флаг загрузки
Разбор
Проверка перед запросом защищает от дублей при повторном onEndReached. Курсор вместо номера страницы делает пагинацию устойчивой к новым записям. Флаг снимается и при ошибке, иначе подгрузка остановится навсегда.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.