我有以下 React 代码来更改函数在特定窗口宽度下的作用:
const [windowWidth, setWindowWidth] = useState({ winWidth: 0 });
useEffect(() => {
window.addEventListener('resize', () => {
return setWindowWidth({ winWidth: window.innerWidth });
});
}, [windowWidth.winWidth]);
控制台只是一遍又一遍地显示1000
。我做错了什么?
您正在调用setWindowWidth
,这会更改 useImpact 依赖项数组中的windowWidth.winWidth
。将多个事件侦听器添加到resize
.
您应该传递一个空的依赖数组。
const [windowWidth, setWindowWidth] = useState({ winWidth: 0 });
useEffect(() => {
window.addEventListener('resize', () => {
return setWindowWidth({ winWidth: window.innerWidth });
});
}, []); // empty dependency array