Как инициализировать объекты, которым требуется DOM-узел внутри компонентов React - PullRequest
0 голосов
/ 24 октября 2019

Я хочу инициализировать экземпляр 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,но я действительно хотел бы знать, является ли этот подход правильным способом или заставляет задуматься.

Заранее спасибо

...