我阅读了文档,它方便地概述了可用的道具和方法。请看这里。
我的问题是,鉴于此处的示例组件:
import {withScriptjs, withGoogleMap, GoogleMap, Marker} from "react-google-maps";
class MyParentComponentWrapper extends Component {
...
...// inside react component class
mapComponent() {
const MyMapComponent = withScriptjs(withGoogleMap((props) =>{
return (
<GoogleMap
defaultZoom={18}
defaultCenter={{ lat: props.lat, lng: props.lng }}
>
{ props.isMarkerShown && <Marker onPositionChanged={()=>{
// This event will trigger the
// call to update the state where lat and lng will go.
}} draggable position={{ lat: props.lat, lng: props.lng }} /> }
</GoogleMap>
)
}))
return (
<MyMapComponent
lat={this.state.form.location.latitude}
lng={this.state.form.location.longitude}
googleMapURL={`https://maps.googleapis.com/maps/api/js?key=${env.google.apiKey}&v=3.exp&libraries=geometry,drawing,places`}
loadingElement={<div style={{ height: `100%` }} />}
containerElement={<div style={{ height: `400px` }} />}
mapElement={<div style={{ height: `100%` }} />}
isMarkerShown/>
)
}
...
看到onPositionChanged
事件了吗?我想更新MyParentComponentWrapper
包含 lat 和 lng 的状态,但我不知道如何调用getPosition()
来获取 lat lng 值。没有提供示例,文档看起来不清楚......有没有办法调用Marker
我不知道的组件中的方法?如果您知道如何执行此操作,您能否提供一个示例说明如何执行此操作?