React componentWillMount


今天在寫React時,遇到的一個問題:

我在父組件里引用了子組件,在 componentWillMount() 中調用了一個異步函數,在返回結果中調用 this.setState() 來保存數據,在子組件的select下拉框里,使用state來渲染,結果子組件一直沒值。

仔細檢查后,查尋API:

omponentWillMount 在渲染前調用,在客戶端也在服務端。

componentDidMount : 在第一次渲染后調用,只在客戶端。之后組件已經生成了對應的DOM結構,可以通過this.getDOMNode()來進行訪問,在這方法中調用setState方法,會觸發重渲染。

 componentWillReceiveProps 在組件接收到一個新的 prop (更新后)時被調用。這個方法在初始化render時不會被調用。

shouldComponentUpdate 返回一個布爾值。在組件接收到新的props或者state時被調用。在初始化時或者使用forceUpdate時不被調用。 可以在你確認不需要更新組件時使用。

componentWillUpdate在組件接收到新的props或者state但還沒有render時被調用。在初始化時不會被調用。

componentDidUpdate 在組件完成更新后立即調用。在初始化時不會被調用。 componentWillUnmount在組件從 DOM 中移除的時候立刻被調用。

 

解決辦法:

將異步方法這些放在componentDidMount中,就不會出現這個問題

 


免責聲明!

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



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