出现错误:使用“ google-maps-react”时,您必须包含“ google”道具

问题描述

我正在整理一个使用页面的Google Maps的小型React应用程序。我已经安装了“ google-maps-react”依赖项。谷歌地图包含在名为DetailPlaqueCard的组件中。 见下文。

import React,{ useEffect,useState } from 'react';
import {Link} from 'react-router-dom';
import GoogleMapReact from 'google-maps-react';

function DetailPlaqueCard({match}){
useEffect(() =>{
    fetchItem();
    console.log(match)
    // eslint-disable-next-line 
},[])
const [item,setItem] = useState([]);


const mapStyles = {
    width: '25%',height: '25%'
  };

const fetchItem = async()=>{
    var proxyUrl = 'https://cors-anywhere.herokuapp.com/'
    // targetUrl = 'https://s3.eu-west-2.amazonaws.com/openplaques/open-plaques-london-2019-03-13.json'
    const fetchItem = await fetch(proxyUrl + `http://openplaques.org/plaques/${match.params.id}.json`)
    const item = await fetchItem.json();
    setItem(item);
    console.log(item)
}

return (
    
    <div>
        <Link to="/">
        <button>
        <i class="fas fa-arrow-left"></i>Back
        </button>
        </Link>
        <h1>Here is the detailed page</h1>
        <h2>The inscription:{item.inscription}</h2>
        <p>Address: {item.address}</p>
        <GoogleMapReact
            bootstrapURLKeys={{ key: process.env.REACT_APP_GOOGLE_KEY }}
            defaultCenter={{lat: item.latitude,lng: item.latitude}}
            defaultZoom={15}
            style={mapStyles}
        />
    </div>
   )
  }

  export default DetailPlaqueCard;

我遇到的问题是,当我运行此代码时,出现以下错误Error: You must include a google prop

The Stack trace.

不确定为什么无法正常工作,就像我注释掉GoogleMapReact一样,该应用程序运行正常。任何帮助将不胜感激。

解决方法

过去我做过类似的事情,而IIRC,GoogleMapReact组件上缺少属性。

<GoogleMapReact
  bootstrapURLKeys={{ key: /* YOUR KEY HERE */ }}
  defaultCenter={this.props.center}
  defaultZoom={this.props.zoom}
  yesIWantToUseGoogleMapApiInternals
  onGoogleApiLoaded={({ map,maps }) => handleApiLoaded(map,maps)}
>

根据文档,您缺少最后两个参数。

我希望这是有用的。

src:https://github.com/google-map-react/google-map-react#use-google-maps-api

PD:您发布的S3链接是公开的,任何人都可以访问它们,如果您不希望与Internet共享,我宁愿将其从问题中删除。