Bazı harita simgelerinin bir tuşa basıldıktan sonra görünmesi/kaybolması için gerekli olan bir harita uygulamasına sahibim, ancak yeni bir spor mülkünden geçtiğinde bileşeni yeniden oluşturmaya nasıl ayarlayacağımı anlayamıyorum veliler bileşen:Reaksiyon bileşenim neden durum güncellemeleriyle güncellenmiyor?
Veli yükleri bileşen:
<SimpleMap sports=[default value and future values go here] />
Basit harita bileşeni (basitleştirilmiş):
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);
}
Sonunda devletten olayları eşlemek için buraya biter:
<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>
'counter' değişken tanımlanır Bunu düzeltmek için 2 yol vardır? Ayrıca, React'ta bir indeks değerini asla 'key' özelliği olarak kullanmayın. Her döngüde işlenen bileşen için her zaman benzersiz bir tanımlayıcı kullanın. Aksi takdirde, öğeler kaldırıldığında veya yeniden düzenlendiğinde tekil davranışlarda bulunabilirsiniz. –
Başka yerde tanımlanmış. Ben basitleştirdim. Bu sadece bir sayı. Bahşiş için teşekkürler. – deek