У меня есть FlatList, который автоматически прокручивает элемент за элементом на основе временного ряда, используя функцию scrollToIndex. Я также хочу позволить пользователю прокручивать список самостоятельно и временно отключить автоматическую прокрутку, когда это произойдет.
Моя идея состояла в том, чтобы использовать событие onScroll, чтобы поймать, когда пользователь прокручивает список, и установить логический флаг. Проблема в том, что событие onScroll также запускается scrollToIndex.
.
Есть ли простой способ обойти это?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать метод под названием «onMomentumScrollEnd», который должен быть уникальным для сенсорных взаимодействий. С его помощью вы можете отменить дребезг или отключить таймер. Вам нужно будет проверить, будет ли ваша синхронизированная функция scrollToIndex иметь возможность иметь приоритет над взаимодействием с пользователем. В этом случае вам придется добавить PanResponder в содержащее представление и отключить/устранить дребезг вашего таймера из его метода «onPanResponderGrant».
Обходной путь может заключаться в использовании набора флагов (скажем, с помощью this.disableOnScrollEvent = true класса компонента)
function onScrollToIndexHandler() {
this.disableOnScrollEvent = true
// remaining code
}
function onScrollEventHandler(event){
if (this.disableOnScrollEvent){
this.disableOnScrollEvent = false;
return;
}
// remaining code
}