Видео onEnd срабатывает дважды после повторного рендеринга - PullRequest
1 голос
/ 28 марта 2020

Я использую React Native Video для моего приложения. Мой компонент выглядит так:

<Video
   source={{ uri: this.state.videoURL }}
   paused={this.state.isVideoPaused}
   onEnd={() => this.playNext()}
/>

, а затем мой метод playNext() выглядит следующим образом:

playNext = () => {
    let playQueue = this.state.videoQueue;
    let nextElement = playQueue.pop();
    this.setState({
       videoURL: nextElement, 
       videoQueue: playQueue
    });
}

Все работает, как и ожидалось, за исключением того факта, что всякий раз, когда onEnd событие происходит, срабатывает дважды. И вместо воспроизведения следующего видео из очереди проигрыватель воспроизводит второе видео после того, которое должно быть включено.

Каким-то образом при первом рендеринге следующего видео onEnd снова запускается. Я предполагаю, что это как-то связано с текущей продолжительностью видео, которое не было сброшено.

Я изо всех сил пытаюсь найти правильное решение этой проблемы. Любая помощь будет очень ценится.

...