Ich habe eine Karten-App, die ich gebaut habe, die einige Kartensymbole benötigt, um nach einem Knopfdruck zu erscheinen/verschwinden, aber ich kann nicht herausfinden, wie man es einstellt, wenn ich eine neue Sport-Eigenschaft von ihm gebe Eltern-Komponente:Warum wird meine reagierende Komponente nicht mit Statusaktualisierungen aktualisiert?
Mutter Lasten Komponente:
<SimpleMap sports=[default value and future values go here] />
Einfache Kartenkomponente (vereinfacht):
constructor(props) {
(props);
this.state = {
events: [{venue: {lat: 2, lon: 1}}],
sports: ["baseball", "football", "paddle", "soccer", "boxing", "dart", "biking", "golf", "hockey", "inline-skating", "tennis", "volleyball", "skateboard", "kickball", "bowling", "pool", "ride", "hike", "ice-skating"]
};
};
componentWillReceiveProps (nextProps) {
this.setState({events: [{venue: {lat: 2, lon: 1}}],
sports: nextProps.sports});
console.log(nextProps.sports);
}
static defaultProps = {
center: {lat: 36.160338, lng: -86.778780},
zoom: 12,
sports: ["baseball", "football", "paddle", "soccer", "boxing", "dart", "biking", "golf", "hockey", "inline-skating", "tennis", "volleyball", "skateboard", "kickball", "bowling", "pool", "ride", "hike", "ice-skating"],
};
makeMapEvents (insertProps) {
fetch("./json/meetup.json").then((response) => {
return response.json()
}).then((response) => {
/* eventually returns new events object based on insertProps */
this.setState({events: response});
}
};
componentDidMount() {
this.makeMapEvents(this.state.sports);
console.log("mounted", this.state.sports);
}
Schließlich hier endet Ereignisse vom Staat zur Karte:
<GoogleMap>
{this.state.events.map((result) => {
return (<Marker key={counter++} lat={result.venue.lat} lng={result.venue.lon}
sport={this.props.sport} data={result}/>);
})}
</GoogleMap>
Wo ist der 'counter' Variable definiert? Außerdem sollten Sie nie einen Indexwert als 'key' Eigenschaft in React verwenden. Verwenden Sie für jede von einer Schleife gerenderte Komponente immer einen eindeutigen Bezeichner. Andernfalls können Sie beim Entfernen oder Neuanordnen von Elementen seltsames Verhalten feststellen. –
Es ist anderswo definiert. Ich habe es vereinfacht. Es ist nur eine Nummer. Danke für den Tipp. – deek