Я нашел здесь этот пост с похожей проблемой, но это не помогло. Маркер карты Google как компонент Reactjs
В моей базе данных хранятся некоторые значения широты и долготы. Я извлекаю эти значения в модели, чтобы отобразить некоторые данные для пользователя. Я отправляю эти значения в простой компонент Google Maps, который я создал после этого руководства https://tomchentw.github.io/react-google-maps/#introduction
Компонент получает «модель» от «реквизита», я получаю эти значения, устанавливаю в двух переменных и пытаюсь отправить их в компонент Google.
Карта просто не загружается с этими значениями, которые я отправляю. Если я не использую «parseFloat», я получаю сообщение об ошибке, что значения были в неправильном формате.
import React from 'react'
import {withGoogleMap,
withScriptjs,
GoogleMap,
Marker } from 'react-google-maps';
import { compose, withProps } from 'recompose'
const MyMapComponent = withScriptjs(withGoogleMap((props) =>
<GoogleMap
defaultZoom={8}
defaultCenter={{lat:parseFloat(props.lat),lng:parseFloat(props.long)}}
>
{props.isMarkerShown && <Marker position={{lat:-18.245630,lng:-45.222387}}
/>}
</GoogleMap>
))
export default class extends React.Component {
constructor(props) {
super(props)
this.state = {
isMarkerShown: false
}
}
componentDidMount() {
this.delayedShowMarker()
}
delayedShowMarker = () => {
setTimeout(() => {
this.setState({ isMarkerShown: true })
}, 3000)
}
handleMarkerClick = () => {
this.setState({ isMarkerShown: false })
this.delayedShowMarker()
}
render() {
let { model } = this.props;
let lat = model.value.latitudeGeoreferencia
let long = model.value.longitudeGeoreferencia
return (
<MyMapComponent
isMarkerShown
googleMapURL="https://maps.googleapis.com/maps/api/js?
key=myKey.exp&libraries=geometry,drawing,places"
loadingElement={<div style={{ height: `100%` }} />}
containerElement={<div style={{ height: `400px` }} />}
mapElement={<div style={{ height: `100%` }} />}
lat
long
/>
)
}
}