【发布时间】:2021-07-01 00:52:23
【问题描述】:
问候我现在正在尝试调试一些代码,不知道如何修复我在标题中用于检测屏幕尺寸视图的这个 useEffect。这是我为 useEffect 得到的错误:
无法对未安装的组件执行 React 状态更新。这是一个空操作,但它表明您的应用程序中存在内存泄漏。
我的代码:
const [state, setState] = useState({
mobileView: false,
drawerOpen: false,
});
const { mobileView, drawerOpen } = state;
useEffect(() =>
{
const setResponsiveness = () =>
{
return window.innerWidth < 1000
? setState((prevState) => ({ ...prevState, mobileView: true }))
: setState((prevState) => ({ ...prevState, mobileView: false }));
};
setResponsiveness();
window.addEventListener("resize", () => setResponsiveness());
}, []);
依赖数组已经是空的,我不知道还要放什么?
【问题讨论】:
-
当您尝试更新状态但组件已经卸载时会发生这种情况,因为状态更新是异步的。
标签: javascript reactjs