【发布时间】:2022-11-17 17:19:37
【问题描述】:
import * as React from "react";
// import "./style.css";
export default function App() {
let [width, setWidth] = React.useState(window.innerWidth);
let [height, setHeight] = React.useState(window.innerHeight);
React.useEffect(() => {
console.log("useEffect is called");
window.addEventListener("resize", () => {
setHeight(window.innerHeight);
setWidth(window.innerWidth);
});
}, []);
return (
<div>
{/* <button onClick={handler}> Submit </button> */}
<h1>
{" "}
{height},{width}{" "}
</h1>
</div>
);
}
上面的代码导致在 UI 上重新呈现高度和宽度值( height =windows.innerHeight & width = windows.innerWidth) 尽管使用 useEffect 和一个空的依赖数组。我在 useEffect 中部署了 useState 来更新高度和宽度。我的理解是,如果与空依赖数组一起使用,useEffect 只会执行一次(在初始渲染之后),但在调整屏幕大小时,高度和宽度也会更新,从而导致重新渲染
【问题讨论】:
标签: reactjs react-hooks