如何在 React 中使用 wavesurfer.js?
How to use wavesurfer.js in React?
我正在尝试在我的 React 应用程序中使用 wavesurfer.js 渲染音频文件。我是菜鸟,我想知道为什么我一直收到 "Container element not found" 消息。
简而言之,这就是我需要知道的。
提前致谢!
import React from "react";
import WaveSurfer from "wavesurfer.js";
export default function Chat(){
const wavesurfer = WaveSurfer.create({
container: "#waveform",
});
render(
<>
<div id="waveform">
</div>
</>
)
}
您目前正在渲染函数中调用它,这意味着它会在每次组件刷新时执行。相反,您可以将它添加到 useEffect
挂钩中,这样波形函数只被调用一次并且您绑定它的元素存在。
此外,您可以使用 ref
而不是 ID,这是 React 用来引用 DOM 元素的内容。
import React, { useRef, useEffect } from "react";
import WaveSurfer from "wavesurfer.js";
export default function Chat(){
const waveformRef = useRef();
useEffect(() => {
if(waveformRef.current) {
const wavesurfer = WaveSurfer.create({
container: waveformRef.current,
});
}
}, []);
return(
<>
<div ref={waveformRef}>
</div>
</>
)
}
我正在尝试在我的 React 应用程序中使用 wavesurfer.js 渲染音频文件。我是菜鸟,我想知道为什么我一直收到 "Container element not found" 消息。
简而言之,这就是我需要知道的。
提前致谢!
import React from "react";
import WaveSurfer from "wavesurfer.js";
export default function Chat(){
const wavesurfer = WaveSurfer.create({
container: "#waveform",
});
render(
<>
<div id="waveform">
</div>
</>
)
}
您目前正在渲染函数中调用它,这意味着它会在每次组件刷新时执行。相反,您可以将它添加到 useEffect
挂钩中,这样波形函数只被调用一次并且您绑定它的元素存在。
此外,您可以使用 ref
而不是 ID,这是 React 用来引用 DOM 元素的内容。
import React, { useRef, useEffect } from "react";
import WaveSurfer from "wavesurfer.js";
export default function Chat(){
const waveformRef = useRef();
useEffect(() => {
if(waveformRef.current) {
const wavesurfer = WaveSurfer.create({
container: waveformRef.current,
});
}
}, []);
return(
<>
<div ref={waveformRef}>
</div>
</>
)
}