FlatList блокирует щелчки при загрузке или обновлении данных - PullRequest
0 голосов
/ 05 мая 2018

Я использую FlatList для обработки огромного количества данных с нумерацией страниц (запрос 15 на 15 для тестов).

<FlatList
    data={this.state.noMatches? this.state.monitorados : this.state.filtrados}
    keyExtractor={item => item.identificador}               
    ListFooterComponent={this.renderFooter}
    refreshing={this.state.refreshing}
    onRefresh={() => this.handleRefresh()}
    style={styles.list}
    onEndReached={() => this.handleScroll()}
    onEndThreshold={0.5}
    renderItem={({item}) =>  (<SimpleItem item={item} />)} 
/>

У меня есть анимация развертывания / свертывания и вложенные компоненты в каждой строке. Я использую пользовательский компонент для обработки анимации, некоторых сборщиков данных, представлений, текстов и других общих.

Когда отображаются первые 15 строк, я пытаюсь щелкнуть, чтобы развернуть, но он не отвечает сразу. Через несколько секунд я могу щелкнуть, и элемент расширяется, но его сильно отстает. Еще несколько секунд, я могу очень хорошо разворачиваться / разворачиваться, каждый элемент списка реагирует мгновенно.

Если я соскользну вниз, будет запрошено еще 15 элементов и все, что случится снова: клики заблокированы, первый клик сильно запаздывает, следующий очень эффективен.

Gif демо:

enter image description here

Вопрос:

  1. Можно ли как-то разблокировать щелчки, чтобы развернуть / свернуть, даже если компонент все еще загружается?
  2. Есть ли способ оптимизировать производительность плоского списка?

Уже пробовал:

  1. Перемещает вложенные компоненты в другой файл и делает его компонентом Pure.
  2. Удалены стили.
  3. Удалены развернутые / свернутые и проверенные щелчки в TouchableOpacity - та же проблема.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...