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