我試圖向this.state.sessions添加/推送一個JavaScript對象(我們稱之爲「會話」)。推送嵌套對象時反應狀態發生變化
我已經試過這兩種方法:
1)Concat'ing新的會話
this.setState({sessions: this.state.sessions.concat(session)});
2)使用作出反應的不變性助手
var newState = React.addons.update(this.state, {
sessions : {
$push : [session]
}
});
this.setState(newState);
雖然淺數據(例如sessions[i].location
)被正確添加,問題是所有先前會話的範圍現在都設置爲新的session.scope。在下面的圖片鏈接中,您可以看到第一個會話的範圍值(sessions[0].scope
)被第二個會話的範圍值(sessions[1].scope
)覆蓋。我如何確保在添加新會話時,先前會話的值不受影響?
我將此標記爲答案。雖然我還沒有解決我的原始代碼庫上的問題,但我仍然按照預期創建了一個更簡單的應用程序(仍帶有子組件)和作用域更新。 – Kunal