gpt4 book ai didi

reactjs - 引用错误 : window is not defined NextJS

转载 作者:行者123 更新时间:2023-12-04 14:09:41 30 4
gpt4 key购买 nike

为生产构建应用程序时出现错误。它一直在说ReferenceError: window is not defined .我迷失了解决问题
完整代码:

const [windowSize, setWindowSize] = useState<WindowInfo>({
width: window.innerWidth,
height: window.innerHeight,
});

useEffect(() => {
if (typeof window !== "undefined") { // error showing in this line
function handleResize() {
const data: WindowInfo = {
width: window.innerWidth,
height: window.innerHeight,
}

setWindowSize(data);
}

window.addEventListener("resize", handleResize);

handleResize();

return () => window.removeEventListener("resize", handleResize);
}
}, []);
任何人都可以告诉我这个问题的解决方法

最佳答案

window是浏览器唯一的东西。在 NodeJS 服务器上,window不会被定义。
您已经在 useEffect 内部处理此问题,但不在 useState .你需要这样的东西:

const isBrowser = (typeof window !== "undefined");
const [windowSize, setWindowSize] = useState<WindowInfo>({
width: isBrowser ? window.innerWidth : 0,
height: isBrowser ? window.innerHeight : 0,
});
我在上面使用了 0 作为默认值,但是您可以使用任何对您的项目合理的东西。

关于reactjs - 引用错误 : window is not defined NextJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65380959/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com