我只想在變量phone(見下文)發(fā)生變化時運行一個函數(shù)。注意: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在每次重新渲染時都會觸發(fā)回調(diào)。不管有沒有phone變。我試過了useEffect,它部分工作。為什么不能useCallback按預期工作?這里最好的方法是什么?
React:僅在選擇渲染、useCallback 或 useEffect 時運行處理程序?
縹緲止盈
2021-06-08 05:12:49