मेरे पास एक नक्शा ऐप है जिसे मैंने बटन बटन के बाद दिखाई देने/गायब होने के लिए कुछ नक्शा आइकन की आवश्यकता है, लेकिन मैं यह नहीं समझ सकता कि घटक को फिर से प्रस्तुत करने के लिए इसे कैसे सेट किया जाए जब मैं इसे से एक नई स्पोर्ट्स प्रॉपर्टी में पास करता हूं माता-पिता घटक:मेरा प्रतिक्रिया घटक राज्य अपडेट के साथ अपडेट क्यों नहीं कर रहा है?
जनक भार घटक:
<SimpleMap sports=[default value and future values go here] />
सरल मैप घटक (सरलीकृत):
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);
}
आखिरकार यहाँ समाप्त होता है राज्य से घटनाओं को मैप करने के:
<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' चर परिभाषित किया गया है इसे ठीक करने के 2 तरीके हैं? साथ ही, आपको प्रतिक्रिया में 'कुंजी' संपत्ति के रूप में बहुत अधिक सूचकांक मान का उपयोग कभी नहीं करना चाहिए। प्रत्येक लूप-रेंडर घटक के लिए हमेशा एक अद्वितीय पहचानकर्ता का उपयोग करें, अन्यथा, जब आइटम हटा दिए जाते हैं या फिर से व्यवस्थित होते हैं तो आप अजीब व्यवहार में भाग ले सकते हैं। –
इसे कहीं और परिभाषित किया गया है। मैंने इसे सरल बना दिया। यह सिर्फ एक संख्या है। पारितोषिक के लिए धन्यवाद। – deek