[英]React setState of object with boolean
我一直在網上尋找該問題的答案,盡管找到了許多與此相關的帖子和文章,但我仍無法弄清楚為什么這對我不起作用。
setTimeout(()=> {
let markerCopy = {...this.state.previousMarker}
this.state.previousInfoWindow.close()
this.state.previousMarker.setLabel(null)
markerCopy.infowindow = false
this.setState({
previousMarker: {
markerCopy,
}
})
},50)
這是我對代碼段的最新嘗試,該代碼應復制this.state
包含的previousMarker
對象的副本,然后將該副本的布爾infowindow
為false
,最后應使用該副本替換處於狀態的previousMarker
。 一路走來,這是行不通的。
以前,我只是使用this.state.previousMarker.infowindow = false
,但是顯然這是直接改變狀態,因此this.state.previousMarker.infowindow = false
。
任何幫助,將不勝感激。
setTimeout(() => {
let markerCopy = { ...this.state.previousMarker };
this.state.previousInfoWindow.close()
this.state.previousMarker.setLabel(null)
markerCopy.infowindow = false;
this.setState({ previousMarker: markerCopy }, () =>
console.log(this.state.previousMarker)
);
}, 50);
好的,所以我知道發生了什么! 我認為問題是傳播者,我認為我需要。 解決方法是:
let markerCopy = this.state.previousMarker
markerCopy.infowindow = false
this.setState({ previousMarker: markerCopy })
感謝您的幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.