Я предлагаю вам сделать несколько вещей немного по-другому.
Сначала сохраните переменную results.json();
в видео в состоянии, а не весь компонент YouTube, это плохая практика.
Затем сохраните другую переменную в вашем состоянии, которая указывает текущий идентификатор воспроизводимого видео (PlayingVideoId). Инициализируйте его в componentDidMount и измените его в функции playNextVideo следующим образом:
constructor() {
super();
this.index=0;
}
componentDidMount() {
fetch('https://www.googleapis.com/youtube/v3/search?key='APIKey'&channelId=UCXIJgqnII2ZOINSWNOGFThA&part=snippet,id&order=date&maxResults=2').then(results => {
this.setState({videos: results.json()});
this.setState({playingVideoId: this.state.videos[this.index]});
})}
playNextVideo = () => {
this.setState({playingVideoId: this.state.videos[++this.index]});
}
Теперь используйте функцию рендеринга для рендеринга компонента
render() {
return(
<YouTube
className="player"
id="video"
videoId={this.state.playingVideoId}
opts={VIDEO_OPTS}
onEnd={this.playNextVideo}
/>
);
}