最近新項目剛上手,就用了react的hooks,之前也看過hooks的不少文章,只是還沒實戰實戰。
業務場景1:需要在頁面一開始時得到一個接口的返回值,取調用另一個接口。 我的思路是,先設置這個接口的返回值為data=[], 等到數據是再去請求另一個接口,即data作為useEffect的第二個參數傳入。
業務場景2:useState狀態的變更,這個初始值保存的也是一個數組
問題:兩次用useEffect都造成了不停的循環,找了很多資料,感覺的用的沒問題
解決方案:最后看到官網上有一句話
知道useEffect會比較前一次渲染和后一次渲染的值,然后我就在想,如果我所設置的data=[],那么即使我后一次渲染的data也為[],那么[]===[]為false,所以才會造成useEffect會一直不停的渲染,所以我把data的初始值改為undefined,試了一下果然可以
結論:useEffect的不作為componentDidUnmount的話,傳入第二個參數時一定注意:第二個參數不能為引用類型,引用類型比較不出來數據的變化,會造成死循環