在 FlatList 中获取渲染视频的引用

Getting refs to rendered videos in FlatList

我有一个应用程序,我在其中使用 expo-video-player 通过 FlatList 渲染视频组件,因为这个列表将来可能会增加,我希望尽可能优化。

我想实现的是,当我点击播放列表中的一个视频时,其他所有正在播放的视频都会暂停。我正在使用所有功能组件,如果它不在 FlatList 中,通常可以引用具有以下内容的视频:

const videoRef = useRef(null);

...

<Video 
   ref={videoRef}
   ...
/>

然后调用 videoRef.current.pauseAsync() 在我的代码中的其他地方暂停它。

但是,现在它在 FlatList 中,我无法理解如何 link 每个视频的 ref 并能够取回 ref 以调用 pauseAsync() 上一个视频正在播放。

任何 direction/guidance 将不胜感激。

如何创建引用数组。

我会使用代码 link 这个:

const videoRefs = [];

const videos = ['url.com/xyz.mp4', 'url.com/abc.mp4'];

videos.forEach((video, index) => {
  videoRefs.push(useRef(null));
});

...

renderItem = ({item, index}) => {
  <Video 
     ref={videoRefs[index]}
     ...
  />
}