[英]unexpected react component state value change
我試圖更新state
值,但首先我已經在另一個裝好了var
和新所做的更改后var
它要setState
和更新原有的state
值。 但是意外地對temp var
更改已經更改了component
state
值!
var postData = this.state.postData;
postData.likes = postData.likes + 1;
console.log(postData.likes, this.state.postData.likes);
console.log
值:(1、1)(2、2)...
由於postData
是一個對象,因此請勿將其直接保存在另一個變量中,因為這將創建對該狀態的引用,而不是副本。 如果是參考,更改一個將更改它們都指向同一對象的其他余弦。
首先復制它”
var postData = Object.assign({}, this.state.postData)
然后更改它。 然后,完成后,使用setState({postData})
您永遠都不應更改狀態,而應始終使用setState,並且要復制對象用戶的傳播符號“ ...”
this.setState(((prevState) => ({
postData:{
...prevState.postData,
likes: prevState.postData.likes + 1,
}
});
您也可以使用ES2018傳播符號,例如var postData = {...this.state.postData};
復制對象並對其進行操作,然后再分配回狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.