即使有許多相同主題行的問題,我也無法得到我的問題的答案。ComponentDidUpdate SetState ReactJS無限循環
問題
我有一個選擇下拉。點擊它,我會調用一個獲取一些關鍵值的Api。我認爲這組鍵值輸入字段是一個組件。因此,每次在選擇下拉菜單的Change時,我都使用生命週期方法來處理API調用。此外,我記錄這些輸入鍵值並將其狀態發送回父組件。
根據ReactJS生命週期方法:
我用
componentDidMount 後初步呈現呼籲首次API。這工作。
componentDidUpdate 在選擇下拉式更改時調用API以用於後續API調用。但這是問題。當我嘗試更新輸入字段的狀態時,程序陷入無限循環,因此存在無限的API調用。我很確定調試後,問題是setState(),但我無法找到在componentDidUpdate方法中處理狀態的最佳方法。
這正是link複製我的問題,但我希望有一個標準化的解決方案
希望這是顯而易見的。 感謝您的幫助!
謝謝!我瞭解解決方法。但ReactJS文檔建議我們可以在componentDidUpdate中設置狀態。想知道我是如何誤解了這個概念的。 http://busypeoples.github.io/post/react-component-lifecycle/請檢查這個博客,你能告訴我我哪裏出了錯? – bks4line
當你setState()在componentDidUpdate裏面時,它會調用下面的生命週期:shouldComponetUpdate - > componentWillUpdate ---> render ---再次----> componentDidUpdate。這樣就創建了無限循環。 –