Некоторые элементы не отображаются в SectionList до запуска прокрутки.

При использовании SectionList строки не отображаются, хотя вызывается renderItem. Строки появляются сразу же, когда в списке запускается прокрутка.

Я нашел проблему на GitHub, чтобы обсудить эту проблему, но я не не найти никакого решения, чтобы исправить это. И проблема была закрыта и отмечена как решенная проблема.

Решение, найденное в приведенной выше проблеме, - отключить removeClippedSubviews в SectionList, установив значение false. Я вижу, что это не решение, а просто уловка. При огромном списке отключение removeClippedSubviews будет ужасным решением, потому что оно не оптимизирует производительность просмотра списка.

Я искал много часов, но не нашел решения, чтобы это исправить. Есть предложения по устранению этой проблемы?

У меня есть использование:

"react": "^16.0.0",
"react-native": "^0.55.4"

person Phan Sinh    schedule 22.08.2018    source источник


Ответы (2)


Попробуйте использовать реквизит

<SectionList
maxToRenderPerBatch={2}
onEndReachedThreshold={0.5}

....

/>

Я надеюсь, это поможет.

person RishabhRathod    schedule 10.12.2018
comment
Я тоже столкнулся с той же проблемой, вышеперечисленные трюки не сработали. - person Saikat Saha; 15.02.2020

Если я правильно помню, SectionList и Flatlist не отображают все элементы сразу из-за производительности. Вместо этого они лениво загружают их. Поэтому вместо этого вы должны использовать ScrollView.

person Sebastian Berglönn    schedule 22.08.2018
comment
ScrollView не лучший выбор для огромных элементов - person Phan Sinh; 22.08.2018
comment
Также заголовки разделов не так просто обрабатывать с помощью ScrollView. - person Sahitya D; 17.01.2020