react-amap icon indicating copy to clipboard operation
react-amap copied to clipboard

Markers 组件在重新渲染时,初始数据一直被保留了

Open hiveer opened this issue 5 years ago • 4 comments

  • 我已经搜索过 issue,没有类似的问题,或者类似的问题仍然没有解决方案。
  • 我已经搜索过文档,并且仍然没有找到解决方案。
  • 我写了个问题重现的例子,链接或者代码将会贴在下面。

问题描述

在首次渲染Markers组件的时候传入了一批点,然后通过click事件重新刷新markers的数据,组件重新渲染,但是第一批传入的点始终存在,并没有被生成的新的点刷新。

重现示例

示例中包含了相应的React的版本,以及react-amap的版本

https://github.com/hiveer/amap-app

image Markers 组件再渲染的时候会渲染出两倍的marker节点,也就是我传入2个点,会渲染出4个来,只重合了所以看起来还是两个

hiveer avatar Sep 19 '20 02:09 hiveer

image 同样的问题在Marker组件也有,我用的是Marker组件,但是在生成的模板中存在两个marker,同样的参数,当我通过事件再去刷新的时候,只有其中给一个会被刷新,另外一个保持不变了。

hiveer avatar Sep 20 '20 14:09 hiveer

请问问题解决了吗?我也刷新不了点 @hiveer

linjinglan avatar Dec 06 '20 12:12 linjinglan

请问问题解决了吗?我也刷新不了点 @hiveer

markers/index.js里refreshMarkersLayout中有一句,判断数组是否相等。 var markerChanged = nextProps.markers !== this.props.markers; 额,deepclone一下就行了

linjinglan avatar Dec 06 '20 13:12 linjinglan