私はこれに実装しました:
populateLocations() {
var arrOfAdds = [],
geocoder = new google.maps.Geocoder()
this.props.properties.map(function(property, i) {
if (geocoder) {
geocoder.geocode({
'address': property.street
}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
// debugger
arrOfAdds.push({
position: {
lat: results[0].geometry.location.lat(),
lng: results[0].geometry.location.lng(),
},
key: i,
defaultAnimation: 2,
})
}
});
}
}, this)
arrOfAdds.map(function(add, i) {
this.state.markers.push(add)
})
console.log('arrOfAdds', arrOfAdds)
console.log('this.state.markers', this.state.markers)
}
私は基本的に this.state.markers (ピンがドロップされるすべての緯度/経度を含む配列) を arrOfAdds 配列にあるもので更新しようとしていますが、this.state.markers を更新できないと思います? 関数でデバッガーを実行すると、 をスキップしてthis.props.properties.map(...
に直接移動するように見えますarrOfAdds.map...
。これは最初から空の配列であり、何も追加せず、 を通過しthis.props.properties.map(...
て適切に設定された arrOfAdds を作成します。
これを行う方法についてかなり混乱していますが、助けていただければ幸いです。