useEffect傳入第二個參數陷入死循環


最近新項目剛上手,就用了react的hooks,之前也看過hooks的不少文章,只是還沒實戰實戰。

業務場景1:需要在頁面一開始時得到一個接口的返回值,取調用另一個接口。 我的思路是,先設置這個接口的返回值為data=[], 等到數據是再去請求另一個接口,即data作為useEffect的第二個參數傳入。

業務場景2:useState狀態的變更,這個初始值保存的也是一個數組

 

問題:兩次用useEffect都造成了不停的循環,找了很多資料,感覺的用的沒問題

解決方案:最后看到官網上有一句話

知道useEffect會比較前一次渲染和后一次渲染的值,然后我就在想,如果我所設置的data=[],那么即使我后一次渲染的data也為[],那么[]===[]為false,所以才會造成useEffect會一直不停的渲染,所以我把data的初始值改為undefined,試了一下果然可以

結論:useEffect的不作為componentDidUnmount的話,傳入第二個參數時一定注意:第二個參數不能為引用類型,引用類型比較不出來數據的變化,會造成死循環

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM