在React中,setState
是否總是給this.state
分配一個新對象? 換句話說,當你撥打:React的setState()是否保證每次都創建一個新的狀態對象?
this.setState({
key1: val1,
key2: val2
});
它總是與新屬性的當前狀態對象合併成一個新的對象,排隊的操作,其在功能上等同於以下?
this.state = {
...this.state,
key1: val1,
key2: val2
};
的原因,我問的是,我想知道是否this.state !== nextState
是總是保證是內部shouldComponentUpdate() true如果更新是由setState
觸發。
謝謝。
這是這個副本:https://stackoverflow.com/questions/35867038/what-the-difference-of-this-state-and-this-setstate-in-reactjs – eenagy
你不想變異this.state像在第二個例子中一樣,總是按照反應文檔中的建議使用this.setState – eenagy
@eenagy我真的不知道它是如何重複的。我不問使用'setState'和'this.state = ...'之間的區別。我從來沒有直接把自己分配給國家對象;我詢問'setState'的內部實現,以及它是否返回一個新的對象,該對象與前一個狀態對象沒有引用相等。 – philraj