我只想在变量phone(见下文)发生变化时运行一个函数。
注意:useMediaQuery按预期工作,每当屏幕大小更改为 768 以上/以下时,它会启动重新渲染,并返回 true/false。
const phone = !useMediaQuery('(min-width:768px)'); // 768 and down: Smartphones
console.log('phone', phone);
useCallback(() => {
console.log('useCallback fired');
if (!phone) handleDrawerClose();
}, [phone])();
我上面的代码useCallback在每次重新渲染时都会触发回调。不管有没有phone变。我试过了useEffect,它部分工作。
为什么不能useCallback按预期工作?
这里最好的方法是什么?
元芳怎么了
相关分类