Является ли хорошим шаблоном использовать карту массива вместо FlatList в React Native? - PullRequest
0 голосов
/ 29 мая 2020

В настоящее время я разрабатываю приложение с разделом комментариев к статье. Можно ли написать экран с комментариями, используя ScrollView и map() во всех элементах массива комментариев? Что-то вроде:

<ScrollView>
  {
    comments.map(comment => (
      <View>{/* comment related content */}</View>
    ))
  }
</ScrollView>

Основная причина, по которой я не хочу использовать FlatList, - это возможность прокрутки до указанного c комментария, зная, что View с комментарием будет иметь переменную высоту (без FlatList я ожидаю, что ScrollView позволит мне прокрутить до позиции, возвращаемой onLayout). Во-вторых, FlatList не отображает все элементы сразу, поэтому я не смогу прокрутить до комментария, который находится далеко вниз по списку. Механизм прокрутки застрянет на последнем визуализированном элементе, чего я не хочу достичь. Поэтому я хочу полностью отказаться от FlatList. Будет ли у меня проблема с производительностью, если в моем списке будет 50-60 пунктов? Я не жду, что пользователи напишут больше комментариев к статье.

1 Ответ

0 голосов
/ 29 мая 2020

Absolutely not, FlatList гораздо более оптимизированы и обладают большей мощностью, чем ScrollView

Все, что возможно с ScrollView, можно сделать с FlatList, но есть случаи, которые не поддерживаются ScrollView, например onEndReched, initialNumToRender, viewabilityConfig и многое другое. Все свойства ScrollView также поддерживаются FlatList.

Кроме того, вы можете визуализировать любое количество элементов с помощью FlatList в один раз.

Проблемы с производительностью зависят от того, что вы делаете внутри элементов списка, но если 50 или 60 элементов в списке с некоторым простым представлением, проблем не будет даже с ScrollView

Подробнее о FlatList. https://reactnative.dev/docs/flatlist#docsNav

...