Я использую 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 демо:
Вопрос:
- Можно ли как-то разблокировать щелчки, чтобы развернуть / свернуть, даже если компонент все еще загружается?
- Есть ли способ оптимизировать производительность плоского списка?
Уже пробовал:
- Перемещает вложенные компоненты в другой файл и делает его компонентом Pure.
- Удалены стили.
- Удалены развернутые / свернутые и проверенные щелчки в TouchableOpacity - та же проблема.