沐鳴娛樂_react 開發中的一些小技巧,助你一臂之力

那麼如何解決這個異步的問題呢?這裡有幾種方式可以參考:,
,我使用 react 開發已經 1 年的時間了,不能說很精通,不過在使用的過程中,確實領悟和總結了一些小技巧,可以加快我們後續的開發,1.1 useState 是異步的,const [data, setData] = useState(); const func = () => { console.log(data); }; useEffect(() => { setData({ name: ‘蚊子’ }); func(); }, []);,1.2 setTimeout 中的 state 永遠是初始值,useEffect(() => { const data = { name: ‘蚊子’ }; setData(data); func(data); }, []);,我們想要延遲設置一些數據,例如讓一個計數器固定簡單的增加+1,我們可能會這樣寫:,延時觸發也可以解決這個問題,但是最不建議這種方式,一個異步問題,如果再用一個延時更大的異步操作來兜底,可能還會產生其他一些未知的問題。,useEffect(() => { if (data) { // 當滿足條件時,執行func() func(); } }, [data]);,我們在使用 react 開發 function comppoent 時,必然繞不開 useState ,可謂是隨處可見,那麼 useState 中有哪些坑和需要注意的地方呢?,有些使用 react 時間較短的同學,經常會這樣寫,在調用 set 方法設置 state 的值后,立刻去獲取這個值:,然而在使用 log 輸出時,卻發現沒有變化。這是因為 useState 中的 set 是異步操作,而函數 func 的調用是同步的,這就導致 func()要比 set 先執行。,那麼如何解決這個異步的問題呢?這裡有幾種方式可以參考: