scrollTopTop 侦听器在组件中不起作用(React-Native)

scrollTopTop listener not working in component (React-Native)

我以前在 ScrollView 中有相同的实现并且它正在工作,当我更改为 flatlist 时我的滚动到顶部停止工作

我正在使用事件寄存器,因为我有嵌套导航。

这是我的实现: (在 Navigation.js)

<Tab.Screen
  name="Home"
  component={HomeNavigation}
  listeners={({navigation, route}) => ({
    tabPress: () => {
      const isAtFirstScreenOfStack =
        !route.state || route.state?.index === 0;
      if (navigation.isFocused() && isAtFirstScreenOfStack) {
        console.log('Scrolling to Top');
        EventRegister.emit('scrollToTop', 'it works!!!');
      }
    },
  })}

在我有列表的组件中:

let scrollViewRef = useRef(null);
let scrollToTopListener = useRef(null);

useFocusEffect(
useCallback(() => {
  scrollToTopListener.current = EventRegister.addEventListener(
    'scrollToTop',
    () => {
      if (scrollViewRef.current) {
        scrollViewRef.current.scrollTo({y: 0, animated: true});
      }
    },
  );

  return () => {
    EventRegister.removeEventListener(scrollToTopListener.current);
  };
}, []),

);

 ...
   <FlatList
     ref={(ref) => (scrollViewRef = ref)}
     ...

在FlatList中使用scrollToOffset

ref.current.scrollToOffset({y:0,animated:true})