This stackoverflow question由@Omar Torres回答如何使用Reactjs在Google地圖上放置標記。谷歌地圖標記爲Reactjs組件
我想使用一個陣列中的多個地圖標記拉,我想的「標記」的變量:
var marker = new google.maps.Marker({position: this.mapCenterLatLng(), title: 'Hi', map: map});
要成爲一個陣營組件以便設定一個關鍵並充分利用React差異化的全面表現。
這裏是我的嘗試,這是行不通的:
/** @jsx React.DOM */
var ExampleMarker = React.createClass({
render: function() {
marker = new google.maps.Marker({position: new google.maps.LatLng(this.props.lat, this.props.lon), title: this.props.mls, map: this.props.map});
return (
<div>{marker}</div>
);
}
});
var ExampleGoogleMap = React.createClass({
getDefaultProps: function() {
return {
initialZoom: 8,
mapCenterLat: 20.7114,
mapCenterLng: -157.7964,
};
},
componentDidMount: function() {
var mapOptions = {
center: this.mapCenterLatLng(),
zoom: this.props.initialZoom
},
map = new google.maps.Map(this.getDOMNode(), mapOptions);
this.setMarkers(map);
this.setState({map: map});
},
mapCenterLatLng: function() {
var props = this.props;
return new google.maps.LatLng(props.mapCenterLat, props.mapCenterLng);
},
setMarkers: function (map) {
this.props.markers.forEach(function(marker) {
<ExampleMarker mls={marker.mls_no} lat={marker.latitude} lon={listing.longitude} key={marker.mls_no} map={map} />;
}.bind(this));
},
componentDidUpdate: function() {
var map = this.state.map;
map.panTo(this.mapCenterLatLng());
},
render: function() {
var style = {
width: '100%',
height: '100%'
};
return (
<div className='map' style={style}></div>
);
}
});
var data = [
{
'title' : "marker1",
'latitude' : "21.883851754",
'longitude' : "-159.465845879"
},
{
'title' : "marker2",
'latitude' : "22.1640990399",
'longitude' : "-159.310355405"
},
{
'title' : "marker3",
'latitude' : "22.0855947129",
'longitude' : "-159.344410728"
}
];
React.renderComponent(
<ExampleGoogleMap markers={data} />,$('body')[0]
);
我在正確的軌道上?
這使得有很大的意義我的代碼。謝謝你@nilgun。 – HawaiiFi 2015-02-12 21:01:12