Flatlist - жизненный цикл компонента каждой строки снова вызывается при прокрутке - PullRequest
0 голосов
/ 06 июня 2018

Я создал чат в Flatlist.Каждый row создается как component, а каждый компонент имеет willMount и didMount.

В первый раз, когда загружается плоский список, я вызывал service in didMount в каждой строке, чтобы обновить представление после отображения сообщения.Я думал, что эта служба будет вызываться только один раз после render.

Но проблема заключается в следующем: Во время прокрутки Flatlist unmount строк, которых нет в viewport .Когда строка равна mounted, значение состояния устанавливается в исходное и снова запускается жизненный цикл.

Поэтому я не смог остановить сервисный вызов после первого раза.

Как остановить сервисный вызов, когда плоский список будет отображаться впервые ?Есть ли способ уменьшить вызов или какой-нибудь лучший подход?

1 Ответ

0 голосов
/ 06 июня 2018

Flatlist не отображает все строки одновременно.Он перерабатывает представления в строки, которые должны быть видны на экране.Это быстро и экономит память.

Вы можете использовать ScrollView, он будет рендерить все строки одновременно.

Или вы можете продолжать использовать Flatlist и перемещать didMount в строкахих родителю.

См. больше сравнений между Flatlist и ScrollView в https://facebook.github.io/react-native/docs/scrollview.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...