我想获取浏览器的窗口大小,根据这个条件我想在组件中渲染一些东西。当我尝试使用 useEffect 获取 clientWidth 时,我得到了该值。但是,我无法将其分配给我在 useState 中定义的变量。
这是我的代码。有时我会收到以下错误,我不明白,因为我没有为常量变量分配任何内容。我尝试分配 useState 变量。
import React, { useState, useEffect } from 'react';
export default function App() {
const [isMobile, setIsMobile] = useState(false);
useEffect(() => {
if (document.documentElement.clientWidth <= 400) {
console.log(document.documentElement.clientWidth);
setIsMobile = true;
}
}, []);
return (
<div>
{(() => {
console.log(isMobile);
if (isMobile === true) {
return <div>This is Mobile</div>;
} else {
return <div>This is normal</div>;
}
})()}
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
这是 stackblitz 中的书面版本。