我一直試圖圍繞setState包裹我的頭。我知道首選方法是傳遞setState函數,因爲該方法是異步的,從而防止覆蓋狀態更改。所以大多數情況下,這是有效的:React setState函數和複雜對象
this.setState(() => ({title}))
但是如果我有一個複雜的物體。 我的狀態是這樣的:
{
movie: { name : 'one', length: 35},
showLength: false
}
我想展示基於一個按鈕的長度點擊,所以我想將布爾更改爲true/false,這是很容易
this.setState((prevState) => ({showLength : !prevState.showLength}))
但如果我什麼想要編輯電影的名字?在將其傳遞給setState之前,我是否需要克隆整個狀態,還是有一個更簡單的方法。我的意思是這不會導致的工作(但顯示了我的意圖):
this.setState((prevState) => ({movie.title:'new title'}))
抱歉重複。稱爲嵌套對象。還必須添加「轉換對象休息傳播」巴貝爾讓它工作! – Todilo