Javascript 区分scrollToIndex和React Native FlatList中的手动滚动
我有一个Javascript 区分scrollToIndex和React Native FlatList中的手动滚动,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有一个FlatList,它使用scrollToIndex功能根据时间序列自动滚动项目。我还想让用户自己滚动列表,并在出现这种情况时暂时禁用自动滚动。 我的想法是使用onScroll事件捕获用户滚动列表并设置布尔标志的时间。问题是onScroll事件也会由scrollToIndex触发 有没有一种简单的方法可以解决这个问题?您可以使用一种称为“onMomentumScrollEnd”的方法,这种方法对于触摸交互来说应该是唯一的。有了它,你可以解除或禁用你的定时器。您必须测试计时scrollToI
FlatList
,它使用scrollToIndex
功能根据时间序列自动滚动项目。我还想让用户自己滚动列表,并在出现这种情况时暂时禁用自动滚动。我的想法是使用
onScroll
事件捕获用户滚动列表并设置布尔标志的时间。问题是onScroll
事件也会由scrollToIndex
触发有没有一种简单的方法可以解决这个问题?您可以使用一种称为“onMomentumScrollEnd”的方法,这种方法对于触摸交互来说应该是唯一的。有了它,你可以解除或禁用你的定时器。您必须测试计时scrollToIndex函数是否能够优先于用户交互。在这种情况下,您必须将PanResponder添加到包含的视图中,并在其“onPanResponderGrant”方法中禁用/取消计时 解决方法可以使用标志集(比如使用组件类的this.disableOnScrolleEvent=true)
function onScrollToIndexHandler() {
this.disableOnScrollEvent = true
// remaining code
}
function onScrollEventHandler(event){
if(this.disableOnScrollEvent){
this.disableOnScrollEvent = false;
return;
}
// remaining code
}