使用 ReactJS 更新标记而不更新 Google 地图中心

Posted

技术标签:

【中文标题】使用 ReactJS 更新标记而不更新 Google 地图中心【英文标题】:Update markers without updating Google Maps center with ReactJS 【发布时间】:2021-03-06 16:28:22 【问题描述】:

我正在使用react-google-maps v9.4.5 库。当我更新标记时,地图的中心也会更新。如何在不影响地图的情况下更新标记?

我已经尝试过使用 redux 并更新状态。

我尝试了这里的示例:https://codesandbox.io/s/qzj7qp4p2w?file=/src/Map.js

但它无法识别我在 Markers.js 中使用的变量 google

GoogleMaps.js

import React from "react";
import 
    withGoogleMap,
    GoogleMap,
    Marker,
    withScriptjs
 from "react-google-maps";

import Markers from "./Markers";

class GoogleMaps extends React.Component 
    constructor(props) 
        super(props);
    

    render() 
        return (
            <GoogleMap
                zoom=this.props.zoom
                center=this.props.center>
                //My own component
                <Markers markers=this.props.markers/>
            </GoogleMap>
        );
    


export default withScriptjs(withGoogleMap(GoogleMaps));

Markers.js

import React from "react";
import 
    Marker,
 from "react-google-maps";

export default function Markers(props) 
    const google = window.google;
    return (
        <>
            
                props.markers.map((marker, index) => (
                    <Marker
                        key=index position=lat: marker.lat, lng: marker.lng
                        icon=
                                url: marker.icon,
                                size: new google.maps.Size(32, 32),
                            
                    />
                ))
            
        </>
    );

感谢您的帮助。

【问题讨论】:

【参考方案1】:

这是我的错,只需将 center 替换为 defaultCenter 即可。

【讨论】:

以上是关于使用 ReactJS 更新标记而不更新 Google 地图中心的主要内容,如果未能解决你的问题,请参考以下文章

如何:从谷歌地图上的 JSON 动态更新标记

使用 websocket 更新 ReactJS 应用程序

ReactJS - 使用 iframe 静默更新令牌

ReactJS进度条使用状态动态更新?

Reactjs:立即使用更新的状态数据(来自商店)

ReactJS 从孩子更新状态