我有一個場景,這是我從API獲取數據。在這種情況下,只要我從商店獲得新的值,我的componentWillReceiveProps()就會被觸發。性能比較this.setState(this.state)VS this.setState({})
componentWillReceiveProps(newProps){
if(newProps.listOne){
this.state.listOne = newProps.listOne;
}
if(newProps.listTwo){
this.state.listTwo = newProps.listTwo;
}
this.setState(this.state);
}
現在,作爲每反應DOC是不恰當的使用this.setState(this.state);
所以牢記這一點,更新狀態將
componentWillReceiveProps(newProps){
if(newProps.listOne){
this.setState({listOne : newProps.listOne});
}
if(newProps.listTwo){
this.setState({listTwo : newProps.listTwo});
}
}
在案例1我的渲染被觸發一次我已經複製所有數據後的狀態的方式。 在第二種情況下我的渲染(和所有中間的生命週期)被觸發,每次我如果條件得到滿足。
所以我不明白它是如何提高自己的表現。可以說我們正在談論的不是一個,而是很多有條件的狀態更新。
請提供您收到的答案反饋;不管這是否「這不能解決我的問題」或將其標記爲已接受。 –