>我有以下返回:
import {Map, Marker} from 'google-maps-react';
class SimpleMap extends Component{
constructor(props) {
super(props);
this.state = {
marker: {
available: false,
position: {
lat: lathere,
lng: lnghere
}
}
};
}
onClick = (t, map, coord) => {
const {latLng} = coord;
let {marker} = this.state;
marker.position.lat = latLng.lat();
marker.position.lng = latLng.lng();
this.setState({marker});
};
render(){
const {marker} = this.state;
return (<Map
google={this.props.google}
zoom={8}
initialCenter={{position here}}
onClick={this.onClick}>
<Marker position={marker.position}/>
</Map>);
}}
再次单击地图时如何删除当前标记?我已经搜索了一些解决方案,但是在每个解决方案中,都有使用new google.maps.map
&new google.maps.marker
实例化的对象,这些对象保存为全局变量,并使用从一个到另一个的引用,以便它们可以删除标记的映射。如何在 ReactJS 中做到这一点?
由于 HMehmood1 在这里的回答而解决。您只需要在<Marker>
中显式添加lat
和lng
即可。例如:
<Marker position={{ lat: marker.position.lat, lng: marker.position.lng }}/>