在做項目的時候遇到問題:
兩個子組件和一個父組件
子組件1改變了某個值通過狀態提升到共同的父組件,然後子組件2要使用更新後的數據
componentWillReceiveProps(nextProps) {
//判斷如果props發生改變
if (nextProps.keys !== this.props.keys) {
this.setState({
keys:this.props.keys
});
}
}
總結一下我目前的瞭解:
1.組件第一次渲染時不會執行componentWillReceiveProps;
2.當props發生變化的時時候會執行componentWillReceiveProps;
3.在componentWillReceiveProps裏面,舊的屬性可以通過this.props來獲取,新的屬性則可以通過參數nextProps來獲取;
4.此函數可以通過調用this.setState()來更新組件狀態,並且不會引起第二次的渲染
5.也可在此函數內根據需要調用自己的自定義函數,來對prop的改變做出一些響應。