代码之家  ›  专栏  ›  技术社区  ›  Ivana Murray

react app中的地理代码未更新地图react

  •  1
  • Ivana Murray  · 技术社区  · 2 年前

    我正在尝试获取地图地理代码,但当地图加载时,它从未使用新的lat和lng。它始终是useState的原始版本。

    const CustomMap = () => {
    const [customLat, setCustomLat] = useState(0);
    const [customLng, setCustomLng] = useState(0);
    
    useEffect(() => {
        Geocode.fromAddress("Eiffel Tower").then(
            (response) => {
                const { lat, lng } = response.results[0].geometry.location;
                setCustomLat(lat);
                setCustomLng(lng);
            },
            (error) => {
                console.log(error.data);
            }
        );
    
    }, [])
    
    return (
        <GoogleMapReact
            bootstrapURLKeys={{ key: 'API_KEY' }}
            defaultCenter={{ lat: customLat, lng: customLng }}
            defaultZoom={11}>
        </GoogleMapReact>
    )
    }
    

    尽管在控制台中,我可以看到它正在获取带有Eifell毛巾url的地图。

    Fetch finished loading: GET "https://maps.googleapis.com/maps/api/geocode/json?address=Eiffel%20Tower&key=KEY&language=en".
    

    这是最后一个控制台日志,但地图的中心仍然是原始日志。

    1 回复  |  直到 2 年前
        1
  •  1
  •   Matheus Martins    2 年前

    您使用的是默认设置,这仅适用于第一次渲染,要更新,需要使用中心,如下所示

      <GoogleMapReact
            bootstrapURLKeys={{ key: 'API_KEY' }}
            defaultCenter={{ lat: customLat, lng: customLng }}
            center = {{lat: customLat, lng: customLng}}
            defaultZoom={11}>
        </GoogleMapReact>