Zunächst bin ich neu in ReactJS. Ich möchte Markierungen in meiner MapComponent anzeigen. Ich habe diese Arbeit gemacht, aber um ehrlich zu sein denke ich, es sollte einen besseren Weg geben, es zu tun ... Ich bekomme Requisiten von meiner Elternkomponente, wo sie von JSON geladen werden. Ich möchte Koordinaten von jedem Element (von meinem JSON) in Markierungen in meinem MapComponent übergeben. Ich habe react-google-maps-Lösung für Google Maps verwendet. Vielleicht könnte mir jemand einen Rat geben, was wäre in diesem Fall der beste Ansatz? Vielen Dank für irgendwelche Tipps!Komponentenstatus in ReactJS
export class MapComponent extends React.Component {
constructor(props) {
super(props)
this.state = {
markers: []
}
}
getMarkers() {
if (this.props.data.rows) {
var markers = this.props.data.rows.map(function(item, i) {
return {
position: {
lat: item.coordinate[0],
lng: item.coordinate[1]
},
item: item
}
});
this.setState({
markers: markers
});
}
}
shouldComponentUpdate(nextProps, nextState) {
return true;
}
componentDidUpdate() {
this.getMarkers();
}
render() {
return (
<div className={styles.map}>
<GoogleMapLoader
containerElement={
<div
{...this.props}
style={{
height: "100%",
}}
/>
}
googleMapElement={
<GoogleMap
ref={(map) => console.log(map)}
defaultZoom={9}
defaultCenter={{lat: 52.379189, lng: 4.899431}}>
{this.state.markers.map((marker, index) => {
return (
<Marker
{...marker}
/>
);
})}
</GoogleMap>
}
/>
</div>
);
}
}
Sie kann es einfacher nur mit Requisiten tun – webdeb
@webdeb was würden Sie vorschlagen? Ich müsste meine Artikel durchgehen und dann durch Koordinaten in GoogleMap? – burakukula
Mein Vorschlag ist es, es in einer einzigen Schleife zu tun, anstatt es vorher vorzubereiten .. und dann eine andere Schleife laufen, um sie zu rendern, sehen Sie meine Antwort – webdeb