Я хочу инициализировать экземпляр wavesurfer.js. Требуется ссылка на элемент DOM в качестве параметра в функции создания
const ws = WaveSurfer.create({container:'#node'})
Мое (рабочее) решение выглядит следующим образом
const Component = () => {
const node = useRef();
const [wave, setWave] = useState()
useEffect(() => {
setWave(WaveSurfer.create({container:node.current}))
},[])
return <div ref={node} />
}
Как я уже сказал, это работает, но это не такчувствую себя хорошо для меня. Конкретное хранение экземпляра WaveSurfer в хуке useState мне кажется подозрительным. Но я не знаю другого способа обойти это, так как мне нужно каким-то образом получить доступ к переменной внутри хука useEffect.
Я не знаю, как далеко мы продвинулись в рекомендациях по реагированию и хуках API,но я действительно хотел бы знать, является ли этот подход правильным способом или заставляет задуматься.
Заранее спасибо