google-map-react:元素类型无效:需要一个字符串
google-map-react: Element type is invalid: expected a string
如果我使用 marker 标签,那么我的组件将无法正常工作,它会抛出类似这样的错误
我的代码是:
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;
这似乎是导出组件的问题。
我认为 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
};
似乎 google-map-react 没有导出名为 Marker
的组件
您可以按照他们的示例使用自定义组件 here
如果我使用 marker 标签,那么我的组件将无法正常工作,它会抛出类似这样的错误
我的代码是:
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;
这似乎是导出组件的问题。
我认为 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
};
似乎 google-map-react 没有导出名为 Marker
的组件
您可以按照他们的示例使用自定义组件 here