Javascript React js:音频元素';s src正在setState上更新,但audioRef未更新

Javascript React js:音频元素';s src正在setState上更新,但audioRef未更新,javascript,reactjs,audio,ecmascript-6,react-hooks,Javascript,Reactjs,Audio,Ecmascript 6,React Hooks,请帮帮我!我正在使用上下文API将曲目传递给播放器。但每当我设置setTracks状态时,音频元素src会更新,但audioRef.current不会更新。我检查了一下,发现audioRef.current= {formatMinutes(audioRef.current.currentTime)} onScrub(e.target.value)} onMouseUp={onScrubEnd} onKeyUp={onScrubEnd} style={{background:trackstylei

请帮帮我!我正在使用上下文API将曲目传递给播放器。但每当我设置setTracks状态时,音频元素src会更新,但audioRef.current不会更新。我检查了一下,发现audioRef.current= {formatMinutes(audioRef.current.currentTime)} onScrub(e.target.value)} onMouseUp={onScrubEnd} onKeyUp={onScrubEnd} style={{background:trackstyleing}} type=“范围”/> {持续时间?格式分钟(持续时间):“00:00”} ) } 导出默认MusicLayer
useRef
不会在每次渲染时重新初始化

因此,它将保持第一次初始化时的状态

因此,无论何时切换曲目,都必须更新audioRef

将您的
toPrevTrack
toNextTrack

const toPrevTrack = () => {
   const prevIndex = trackIndex - 1 < 0 ? tracks.length - 1 : trackIndex - 1;
   const { audioSrc } = tracks[prevIndex]
   audioRef.current = new Audio(audioSrc);
}

const toNextTrack = () => {
   const nextIndex = trackIndex < tracks.length - 1 ? trackIndex + 1 : 0;
   const { audioSrc } = tracks[nextIndex]
   audioRef.current = new Audio(audioSrc);
}
const toPrevTrack=()=>{
const prevIndex=trackIndex-1<0?tracks.length-1:trackIndex-1;
const{audioSrc}=音轨[prevIndex]
audioRef.current=新音频(audioSrc);
}
常量toNextTrack=()=>{
const nextIndex=trackIndex
const toPrevTrack = () => {
   const prevIndex = trackIndex - 1 < 0 ? tracks.length - 1 : trackIndex - 1;
   const { audioSrc } = tracks[prevIndex]
   audioRef.current = new Audio(audioSrc);
}

const toNextTrack = () => {
   const nextIndex = trackIndex < tracks.length - 1 ? trackIndex + 1 : 0;
   const { audioSrc } = tracks[nextIndex]
   audioRef.current = new Audio(audioSrc);
}