react-amap
react-amap copied to clipboard
Markers通过click事件render修改样式后出现两个实例
- [x] 我已经搜索过 issue,没有类似的问题,或者类似的问题仍然没有解决方案。
- [x] 我已经搜索过文档,并且仍然没有找到解决方案。
- [ ] 我写了个问题重现的例子,链接或者代码将会贴在下面。
Reproduce Example Link or Code Fragment
markerEvents = {
// markers加载完运行
created: markers => {
});
},
click: (e, marker) => {
marker.render(this.renderClickLayout);
},
};
renderClickLayout = extData => {
this.setState({
selectedMarker: extData.id,
});
};
renderMarkersLayout = extData => {
if (extData.id === this.state.selectedMarker) {
return <IconA />
}
return <IconB />;
};
React组件的render中的
<Markers
markers={someData}
events={this.markerEvents}
render={this.renderMarkersLayout}
/>
What is Expected?
期望是选择一个marker后该marker展示不同的样式, 已经实现,
What is actually happening?
实现了选中marker样式变化, 但拖动map或zoom改变后晃动鼠标会在该位置出现两个重合的不同的样式的marker 猜测是click事件中调用的render创建了新的marker实例而没有销毁旧的
请问你是使用了严格模式吗????我使用严格模式也是遇到了同样的问题
我重写了Markers的组件,发现就是没有销毁以前的实例,导致最后会内存溢出,直到浏览器崩溃