因此,我正在学习NextJs,并试图构建一个音频聊天应用程序,但当我尝试导入PeerJs时,我遇到了困难
它抛出了一个未定义的窗口错误。
import Peer from 'peerjs';
export default function Home() {
useEffect(() => {
const myPeer = new Peer(undefined, {
host: '/',
port: '3001'
})
}, [])
}发布于 2021-02-20 21:28:47
这是因为使用nextjs,代码首先在服务器端计算(渲染为HTML)。在此阶段,尚未定义window。这可能是因为对等js在导入过程中执行了一些副作用。要解决此问题,可以使用动态导入:
useEffect(() => {
import('peerjs').then(({ default: Peer }) => {
// Do your stuff here
});
}, [])https://stackoverflow.com/questions/66291720
复制相似问题