You have included the Google Maps JavaScript API multiple times on this page

Kamran picture Kamran · Jul 13, 2018 · Viewed 12k times · Source

how can I avoid “You have included the Google Maps JavaScript API multiple times on this page. This may cause unexpected errors.” if I am using google-map-react to display the map and react-places-autocomplete in another component to get the address and coordinates ?

//LocationMapPage  component that displays the map box and pass the props to it
class LocationMapPage extends Component {

  render() {
    let {latLng,name,address} = this.props.location;
    return (
        <MapBox lat={latLng.lat} lng={latLng.lng} name={name} address={address}/>
    )
  }

}

//MapBox component
import React from "react";
import GoogleMapReact from 'google-map-react';
import apiKey from "../../configureMap";


const Marker = () => <i className="fa fa-map-marker fa-2x text-danger" />

const MapBox = ({lat,lng, name, address}) => {
    const center = [lat,lng];
    const zoom = 14;
    return (  
        <div style={{ height: '300px', width: '100%' }}>
            <GoogleMapReact
            bootstrapURLKeys={{ key: apiKey }}
            defaultCenter={center}
            defaultZoom={zoom}
            >
            <Marker
                lat={lat}
                lng={lng}
                text={`${name}, ${address}`}
            />
            </GoogleMapReact>
      </div>
    );
}

export default MapBox; 

Map is blank: enter image description here The Error in the console:You have included the Google Maps JavaScript API multiple times on this page. This may cause unexpected errors.

How to solve?

I am using google-map-react, react-places-autocomplete in the project.

Answer

Kamran picture Kamran · Jul 17, 2018

AS temporary solution to my specific use case where I use the google map API's in two different components I have just added the script in the index.html:

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places"></script> 

I did it in order to avoid that particular error as per of the documentation on the react-places-autocomplete GitHub page.