使用UseState更新数组项以在React Native中擦除整个数组

时间:2020-10-02 10:13:05

标签: react-native hook use-state flatlist

伙计们,我正在尝试使用FlatList道具OnViewRef在滚动时自动播放视频。我试图通过添加一些将api设置为本地状态的视频数组来进行设置并带有isPaused:false等值的额外键。在OnViewRef中,我尝试根据viewableitemchanges切换isPaused值。但是当我滚动整个视频时,消失并且本地状态为null。请帮助我如何解决这个。 这是我的代码

    const onViewRef = useRef((viewableItmes) => {
    // alert(JSON.stringify(viewableItmes));
    if (viewableItmes.viewableItems.length > 0) {
      setVideos(
        videos.map((item) => {
          item.isPaused = true;
          if (item.challenge_id === viewableItmes.changed[0].item.challenge_id)
            return {
              ...item,
              isPaused: !item.isPaused,
              // isVolumeVisible: !item.isVolumeVisible,
            };
          return item;
        }),
      );
      alert('Videos', JSON.stringify(videos));
    }
  });

0 个答案:

没有答案