我一直在网上寻找该问题的答案,尽管我发现了很多与此相关的文章和文章,但我仍然不知道为什么这对我不起作用。
setTimeout(()=> {
let markerCopy = {...this.state.previousMarker}
this.state.previousInfoWindow.close()
this.state.previousMarker.setLabel(null)
markerCopy.infowindow = false
this.setState({
previousMarker: {
markerCopy,
}
})
},50)
这是我最近对一段代码的尝试,该代码应复制previousMarker
中包含的this.state
对象,然后将布尔值infowindow
设置为{{1 }}的副本,最后应将状态为false
的副本替换为该副本。在此过程中某个地方不起作用。
以前我只是在使用previousMarker
,但是很明显,这是直接在改变状态并且对此不满意。
任何帮助将不胜感激。
答案 0 :(得分:0)
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);
答案 1 :(得分:0)
好的,所以我弄清楚发生了什么!我认为问题是传播者,我认为我需要。解决方法是这样:
let markerCopy = this.state.previousMarker
markerCopy.infowindow = false
this.setState({ previousMarker: markerCopy })
感谢帮助人员。