Есть ли нативное представление переработчика, работающее как на Android, так и на IOS в (реагирующий-нативный) - PullRequest
0 голосов
/ 17 апреля 2020

У меня большой список со сложными вычислениями, и Flatlist действительно делает мое приложение медленным и отзывчивым, когда scrolling. Также я нахожу и использую много пакетов на Inte rnet, но они хорошо работают только с указанными c height, но мой items height - динамический c.

Я использовал все полезное путь для Flatlist, но прокрутка все еще медленная, даже какое-то время происходит сбой моего приложения. Не могли бы вы показать мне собственный список списков updated переработчика для реагировать на родной или есть лучший способ для этой ситуации.

Что происходит с моим списком?

Это приложение, похожее на чат, поэтому есть изображения, текстовые сообщения, видео и наклейки, а также некоторые состояния, такие как seen и delevered также, когда сообщения «видят», что отдельные элементы сообщения обновляются как отдельный элемент, например, последнее отдельное сообщение было просмотрено, поэтому оно будет обновлено.

Мой текущий код с 380 элементами:

<FlatList data={arrayItems}
  initialNumToRender={1}
  renderItem={renderItem}
  keyExtractor={keyExtractor}
  style={{ width: '100%', height: '100%' }}
/>

1 Ответ

1 голос
/ 17 апреля 2020

FlatList является аналогом Android Studio RecyclerView

. Могут быть различные причины, по которым ваш рендеринг данных Flatlist идет медленно. 1) Один из способов решения этой проблемы, если у вас огромные данные, - это выборка данных по частям, например, вы можете сначала извлечь и отобразить 20 initialNumToRender элементов списка, а затем, когда пользователь прокручивает, вызвать API для выборки следующих 20 записи, использующие onEndReachedThreshold для вызова onEndReached для получения следующего пакета данных.

2), если вы используете компоненты класса для отображения плоского списка, лучше использовать PureComponent, если данные огромны.

3) используйте функциональный компонент для скорости.

Также, если вы имеете дело с огромным количеством данных, лучше использовать библиотеку управления состояниями, такую ​​как, например, redux, для хранения данных.

...