【发布时间】:2022-09-23 10:12:31
【问题描述】:
所以我有一个客户挂钩,它返回窗口宽度是否小于 768。我这样做是为了检查移动设备和笔记本电脑的使用情况。
import { useState, useEffect } from \"react\";
const getIsMobile = () => window.innerWidth <= 768;
function CheckMobileHook() {
const [isMobile, setIsMobile] = useState(getIsMobile());
useEffect(() => {
const onResize = () => {
setIsMobile(getIsMobile());
};
window.addEventListener(\"resize\", onResize);
return () => {
window.removeEventListener(\"resize\", onResize);
};
}, []);
return isMobile;
}
export default CheckMobileHook;
这个 onResize 方法每次都会被调用,并且状态也会发生变化。
所以我想做类似的事情 -
const onResize = useCallback(() => {
setIsMobile(getIsMobile());
},[getIsMobile()]
但是在依赖数组中传递一个函数没有任何意义。 我知道这是错误的,但是当窗口宽度小于或大于 768 时,我怎样才能使这种状态发生变化?
我这样做是为了学习 useCallback
标签: reactjs