FlatList ReactNative вызывает renderItem больше раз, чем указывает windowSize

Я использую FlatList для отображения списка. Я настроил отображение только одной строки за раз, используя pagingEnabled={true} и отображая ячейки, которые занимают полный размер родительского элемента.

Я также установил windowSize={2} и initialNumToRender={1}. В моей функции renderItem я регистрирую каждый вызов с помощью console.log.

Когда компонент загружается, я вижу по одному оператору журнала в renderItem для каждого элемента в моем массиве данных, что означает, что каждая ячейка предварительно отрисовывается.

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


person 0x6A75616E    schedule 29.06.2017    source источник
comment
тебе удалось это решить?   -  person Nico    schedule 21.03.2018


Ответы (1)


У меня такая же проблема, похоже, в FlatList и VirtualizedList есть ошибка: https://github.com/facebook/react-native/issues/18142 Но я не знаю, почему не хочу решать, я тестирую небольшое приложение, которое отображает только список чисел, и у меня был та же проблема. Я вообще не исправлял это, но это помогло мне улучшить производительность: https://facebook.github.io/react-native/docs/next/optimizing-flatlist-configuration

Примечание: очень важно реализовать: getItemLayout и поставить removeClippedSubviews={true}, потому что это значительно улучшает производительность.

Pd: Я рекомендую вам этот компонент: https://github.com/Flipkart/recyclerlistview

Надеюсь, я помог тебе. Привет!

person Martín Alejandro    schedule 23.09.2019