Я построил таймер, используя функциональные компоненты и React Hooks. Когда таймер достигает 00:00, воспроизводится аудиоклип. Мой текущий код работает с использованием нового Audio (). Вот пример:
const Timer = () => {
const [myAudio] = useState(new Audio(soundfile));
const handleBeep = () => {
myAudio.play();
}
Это работает, но не проходит тест FCC, потому что я должен использовать тег HTML5. Я попытался использовать ловушку useRef (), чтобы выбрать аудиофайл. Однако myAudio не был распознан как объект Audio:
const myAudio = useRef();
const handleBeep = () => {
myAudio.play();
}
return (
<div>
<audio id='beep' ref={myAudio} src={soundfile} type='audio'/>
</div>
Ранее я использовал ref для тегов в компонентах класса, и мне интересно, есть ли способ сделать это с помощью React Hooks в функциональных компонентах,Я бы не хотел полностью реструктурировать свой код, чтобы пройти тест, поэтому любой ввод будет полезен.