Я пытаюсь выполнить setState внутри функции обратного вызова геокода, но это невозможно, так как я могу выполнить
this.setState
внутри функции или дождаться завершения функции и получить некоторые результатычтобы установить эту информацию в новом состоянии.
onMarkerPositionChanged: (e,reloadList,marker) => {
var geocoder = new window.google.maps.Geocoder();
var myLatlng = new window.google.maps.LatLng(e.latLng.lat(),e.latLng.lng());
var dragEndPositions;
var nextMarkers
let sitiosNew =[]
sessionStorage.id = marker.id
geocoder.geocode({'latLng': myLatlng }, function(results, status) {
if (status == window.google.maps.GeocoderStatus.OK) {
if (results[0]) {
dragEndPositions = results[0].formatted_address;
console.log(dragEndPositions)
nextMarkers = [{
position: myLatlng,
nombre: dragEndPositions,
icon : icon,
direccion: dragEndPositions,
latitud: e.latLng.lat(),
longitud: e.latLng.lng(),
id: sessionStorage.id
}]
if(sessionStorage.auto){
JSON.parse(sessionStorage.auto).forEach(nextMarker => {
if (nextMarker.id==nextMarkers.id) {
sitiosNew.push(nextMarkers)
}
sitiosNew.push(nextMarker)
})
}
if(sessionStorage.auto){
sessionStorage.removeItem("auto")
}
sessionStorage.auto = JSON.stringify(sitiosNew)
this.setState({
markers: sitiosNew
})
reloadList()
}
}
})
Заранее спасибо!