Open hiveer opened 4 years ago
同样的问题在Marker组件也有,我用的是Marker组件,但是在生成的模板中存在两个marker,同样的参数,当我通过事件再去刷新的时候,只有其中给一个会被刷新,另外一个保持不变了。
请问问题解决了吗?我也刷新不了点 @hiveer
请问问题解决了吗?我也刷新不了点 @hiveer
markers/index.js里refreshMarkersLayout中有一句,判断数组是否相等。 var markerChanged = nextProps.markers !== this.props.markers; 额,deepclone一下就行了
- 我已经搜索过 issue,没有类似的问题,或者类似的问题仍然没有解决方案。
- 我已经搜索过文档,并且仍然没有找到解决方案。
- 我写了个问题重现的例子,链接或者代码将会贴在下面。
问题描述
在首次渲染Markers组件的时候传入了一批点,然后通过click事件重新刷新markers的数据,组件重新渲染,但是第一批传入的点始终存在,并没有被生成的新的点刷新。
重现示例
示例中包含了相应的React的版本,以及react-amap的版本
https://github.com/hiveer/amap-app
Markers 组件再渲染的时候会渲染出两倍的marker节点,也就是我传入2个点,会渲染出4个来,只重合了所以看起来还是两个
看了repo之后,这个问题应该是strictMode的重复渲染问题导致的。 https://github.com/facebook/react/issues/17786
问题描述
在首次渲染Markers组件的时候传入了一批点,然后通过click事件重新刷新markers的数据,组件重新渲染,但是第一批传入的点始终存在,并没有被生成的新的点刷新。
重现示例
示例中包含了相应的React的版本,以及react-amap的版本
https://github.com/hiveer/amap-app
Markers 组件再渲染的时候会渲染出两倍的marker节点,也就是我传入2个点,会渲染出4个来,只重合了所以看起来还是两个