Автоматическое переключение песни в массиве через JS после завершения проигрывания

Решил доделать свой плеер, но столкнулся с проблемой в данном моменте. Моя реализация:

 let [index, setIndex] = useState(0);
 const [currentSong, setCurrentSong] = useState(songs[index]);
 
   useEffect(() => {
    playing ? myPlayer.current.play() : myPlayer.current.pause();
    setDuration(myPlayer.current.duration);
    myPlayer.current.addEventListener("ended", function (e) {
      console.log(index, currentSong, setCurrentSong);
      setIndex(++index)
      setCurrentSong(songs[index]);
    });
  });
  
  
 

Первая песня переключается нормально, а дальше индекс сначала инкрементирует, а потом возвращается к предыдущему значения. Соответственно, не происходит переключение песни. Подскажите, что я делаю не так? Причем, если попробовать дальше переключить песню, то выходит ошибка currentSong is undefined


Ответы (0 шт):