課程
/前端開發
/React.JS
/React Hooks2小時快速入門
有點抄文檔的感覺啊 花了錢的? 感覺細節講的不是很深入 講的不是很深入 例如 useRef那一節為什么不用ref就會獲取不到值
2020-11-21
源自:React Hooks2小時快速入門 3-8
正在回答
好吧,為了彌補,就在這里做回答吧,先看下代碼實現
const?[num,?setNum]?=?useState(1) let?timer //?第一個effect useEffect(()?=>?{ ??timer?=?setInterval(()?=>?{ ????console.log(1111); ????setNum(num?+?1) ??},?400) },?[]) //?第二個effect useEffect(()?=>?{ ??console.log(num,?timer); },?[num]) return?( ??<div?className="App"> ????{num} ??</div> );
第一個effect在更新渲染的時候,并沒有依賴num參數,也就是只執行一次就結束了,但是每次更新num的時候,當前組件是要刷新的,timer也會重新生成一個,此時的timer只是undefined,并沒有賦值的過程(第一個effect不執行了)。第一次給timer賦值之后,剩下的所有更新里,timer都是undefined。所以在第二個effect里獲取和清空timer,只能獲取到undefined。
如果還有不明白,歡迎再次提問。?
舉報
React Hooks 入門的不二之選
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2021-06-06
好吧,為了彌補,就在這里做回答吧,先看下代碼實現
第一個effect在更新渲染的時候,并沒有依賴num參數,也就是只執行一次就結束了,但是每次更新num的時候,當前組件是要刷新的,timer也會重新生成一個,此時的timer只是undefined,并沒有賦值的過程(第一個effect不執行了)。第一次給timer賦值之后,剩下的所有更新里,timer都是undefined。所以在第二個effect里獲取和清空timer,只能獲取到undefined。
如果還有不明白,歡迎再次提問。?