如何将音频引用发送到 React 中的函数?
How can I send an audio reference to a function in React?
我有音频参考:
const sound1 = useRef();
正如我所做的那样:
<audio ref={sound1} src='/resources/DRUMS.mp3' loop={looping}></audio>
以及我想将其发送至的函数:
const toggleMuteUnmute=(soundRef, isPlaying, stateFunc)=>{
const prevValue = isPlaying;
stateFunc(!prevValue);
if(prevValue){
soundRef.current.muted = false;
animationRef.current = requestAnimationFrame(whilePlaying);
}
else{
soundRef.current.muted = true;
cancelAnimationFrame(animationRef.current);
}
}
使用这个:
<button onClick={toggleMuteUnmute(sound1, isPlaying1, setIsPlaying1)} >
但出现错误:
Cannot set properties of undefined (setting 'muted')
引用 'else' 语句中的第一行。
为什么它无法读取 html 音频标签的静音属性?
好的,我解决了。
我所要做的就是在函数调用之前放置 - () =>
,如 -
<button onClick={() => toggleMuteUnmute(sound1, isPlaying1, setIsPlaying1)} >
我有音频参考:
const sound1 = useRef();
正如我所做的那样:
<audio ref={sound1} src='/resources/DRUMS.mp3' loop={looping}></audio>
以及我想将其发送至的函数:
const toggleMuteUnmute=(soundRef, isPlaying, stateFunc)=>{
const prevValue = isPlaying;
stateFunc(!prevValue);
if(prevValue){
soundRef.current.muted = false;
animationRef.current = requestAnimationFrame(whilePlaying);
}
else{
soundRef.current.muted = true;
cancelAnimationFrame(animationRef.current);
}
}
使用这个:
<button onClick={toggleMuteUnmute(sound1, isPlaying1, setIsPlaying1)} >
但出现错误:
Cannot set properties of undefined (setting 'muted')
引用 'else' 语句中的第一行。
为什么它无法读取 html 音频标签的静音属性?
好的,我解决了。
我所要做的就是在函数调用之前放置 - () =>
,如 -
<button onClick={() => toggleMuteUnmute(sound1, isPlaying1, setIsPlaying1)} >