問題**如下:
export
default props =>
}= props.data;
const
[info, setinfo]
=usestate()
;useeffrct((
)=>);
},[option]
)}
當props.data 的值中沒有 option 的時候,就死迴圈了, 報錯如下:
[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-olv7zpdb-1606299982412)(en-resource://database/544:1)]
雖然後面發現這個問題是因為很蠢的**造成的,但還是要記錄一下!!!警示自己
每次state更新,頁面就會重新渲染。
由於在 useeffect 中使用了setstate,執行useeffect 就會重新渲染。
獲取detail 和 option 的值沒有依賴,所以頁面渲染就會重新取值。
由於給option值賦了預設值,每次重新取值就會重新賦值乙個空物件
空物件 {} !== {}
useeffect 依賴於 option, option 更新就會重新執行useeffect中的**
所以每次頁面重新渲染,option的值就會變化,導致 再次執行useeffect中的**,然後再次重新渲染,進入死迴圈。
option不設定預設值,在使用時進行為空判斷
vfork死迴圈問題
關於vfork函式的乙個問題。include include include include int main else return 0 首先說一下fork和vfork的差別 這兩個的差別是,乙個是copy,乙個是share。你 man vfork 一下,你可以看到,vfork是這樣的工作的,1 ...
HashMap死迴圈問題追蹤
hashmap在設計之初並沒有考慮多執行緒併發的情況,多執行緒併發的情況下理論上應該使用concurrenthashmap,但是程式中經常會無意中在多併發的情況下使用了hashmap,如果是jdk1.8以下的版本,有可能會導致死迴圈,打滿cpu占用,下面基於jdk1.7原始碼分析下原因。我們從put...
shell 死迴圈if判斷 shell 死迴圈
例1 執行指令碼後會自動載入firefox瀏覽器,並開啟指定網頁。如果使用者關閉firefox,指令碼會再次自動重新開啟firefox。如需結束迴圈,中止t2.sh程序即可。注意不要同時執行兩個t1.sh指令碼,否則 若事先不知道指令碼名,也可以通過類似於 pstree grep firefox 的...