为了账号安全,请及时绑定邮箱和手机立即绑定

React:仅在选择渲染、useCallback 或 useEffect 时运行处理程序?

React:仅在选择渲染、useCallback 或 useEffect 时运行处理程序?

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

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

useCallback返回一个记忆化的函数,然后你调用它。正如你所说,它被执行。

这里最好的方法是什么?

useEffect


查看完整回答
反对 回复 2021-06-11
  • 1 回答
  • 0 关注
  • 159 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信