我遇到了 react-google-maps 模块的问题,即标记和组件重新渲染。
这是场景:
- 加载带有地图和 2-3 个标记的页面(好的)
- 单击导航栏上的选项卡 -> 页面以单页应用程序方式呈现其他内容(好的)
- 单击导航栏上返回地图的选项卡 -> 页面呈现地图但不呈现标记。
我在该州持有标记数据,并将它们应用到onGoogleApiLoaded={({map, maps}) => this.renderMarkers(map, maps)}
.
我设法通过renderMarkers
在setTimeout
一秒钟内换行来解决这个问题,并且它以这种方式加载得很好。
我不喜欢这个解决方案,我相信我根本没有按照我应该的方式去做。我相信标记试图将自己放置在未渲染的地图上,但奇怪的是即使没有setTimeout
它也适用于默认页面(可能与反应组件生命周期有关,我不知道)。
onGoogleApiLoaded={({map, maps}) => this.renderMarkers(map, maps)}
地图完全加载后有没有办法附加属性?或者至少延迟它,直到我 100% 确定地图已加载,而不是一些随机的秒数。
编辑:我正在使用该方法分配标记,marker.setMap(map)
我只是尝试在标记的构造函数中设置属性map: map
,但行为保持不变。