Выбор ответа Middle Списки и производительность обновлено
FlatList: getItemLayout
Вопрос
Что даёт getItemLayout у FlatList?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Положение элемента известно без рендера: нет измерений, надёжный scrollToIndex. Когда высота элементов известна (одинаковая или вычислимая), getItemLayout возвращает { length, offset, index }, и списку не нужно рендерить элементы, чтобы узнать их положение.
Варианты ответа
- Список автоматически вычисляет высоту элементов разного размера заранее
- Положение элемента известно без рендера: нет измерений, надёжный
scrollToIndexправильный ответ - Он включает переиспользование компонентов строк, как
RecyclerViewделает на Android - Он позволяет отсортировать элементы списка по их высоте перед отрисовкой
Разбор
Когда высота элементов известна (одинаковая или вычислимая), getItemLayout возвращает { length, offset, index }, и списку не нужно рендерить элементы, чтобы узнать их положение. Это ускоряет первую отрисовку и прыжок к элементу. Для элементов разной неизвестной высоты он не подходит: неверный getItemLayout ломает прокрутку. Переиспользование это FlashList.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.