如果我使用标记标记,那么我的组件无法工作,并且它会抛出一些错误,例如
我的代码是:
import React, { Component } from 'react';
import GoogleMap, { Marker } from 'google-map-react';
class Maps extends Component {
static defaultProps = {
center: {lat: 22.741033, lng: 81.102441},
zoom: 5
};
render() {
return (
<GoogleMap
bootstrapURLKeys={{ key: ['AIzaSyAA1WZznnpeoP6hZz26UiARGNOhZhYLZek'] }}
defaultCenter={this.props.center}
defaultZoom={this.props.zoom}
style={{height: '300px'}}
>
<Marker
position={this.props.center}
/>
</GoogleMap>
);
}
}
export default Maps;
答案 0 :(得分:1)
这似乎是导出组件的问题。
我认为GoogleMap
默认情况下不导出react-google-maps
。尝试将其作为组件导入。
import { GoogleMap, Marker } from "react-google-maps";
另外,您可能需要查看react-google-map中的withGoogleMap
组件。
添加我的示例代码
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { withGoogleMap, GoogleMap, Marker } from "react-google-maps";
const MapWithAMarker = withGoogleMap(props => {
return (
<GoogleMap defaultZoom={12} defaultCenter={{ lat: props.marker.lat, lng: props.marker.lng }}>
{props.marker &&
<Marker label={props.marker.name} position={{ lat: props.marker.lat, lng: props.marker.lng }} />
}
</GoogleMap>
);
});
export default class Map extends Component {
render() {
const { marker } = this.props;
return (
<MapWithAMarker marker={marker} containerElement={<div className="mapContainer full-flex" />} mapElement={<div className="map" />} />
);
}
}
Map.propTypes = {
marker: PropTypes.object
};
答案 1 :(得分:1)
似乎google-map-react没有导出名为{{1}}的组件 您可以根据示例here
使用自定义组件