मेरे पास यह पिकर है:
<Picker
style={{ width: "100%" }}
mode="dropdown"
selectedValue={move.client}
onValueChange={this.handleChange("client")}
>
{this.state.clients !== "" ? (
this.state.clients.map(client => {
<Picker.Item label={client.name} value={client.id} />;
})
) : (
<Picker.Item label="Loading..." value="0" />
)}
</Picker>
मैं पिकर.आइटम्स को वह सरणी नहीं बना सकता जो मैं चाहता हूं। यह ठीक उसी तरह काम करता है जैसे रिएक्ट जेएस में, लेकिन मैं इसे यहां काम नहीं कर सकता।
और इस प्रकार मैं अपने डीबी से क्लाइंट सरणी प्राप्त करता हूं:
componentDidMount() {
axios
.get(`${API_URL}/clients`)
.then(response => {
this.setState({ clients: response.data });
})
.catch(error => console.log(error));
}
मुझे यह त्रुटि मिलती है
लेखन त्रुटि: नल की संपत्ति 'प्रॉप्स' नहीं पढ़ सकता
ऐसा लगता है कि यह पिकर को प्रस्तुत करता है, लेकिन जब मुझे अपने डीबी से डेटा मिलता है तो यह दुर्घटनाग्रस्त हो जाता है और मुझे यह त्रुटि मिलती है। मैं अभी नहीं ढूंढ सकता कि मैं क्या गलत कर रहा हूं ...
1 उत्तर
याद रखें कि आपको एक फंक्शन को array.map
पर पास करना है और एक फंक्शन में <Picker.Item label={client.name} value={client.id} />;
जैसा स्टेटमेंट नहीं हो सकता। आपको पहले एक वापसी विवरण जोड़ना चाहिए। नीचे सही है:
<Picker
style={{ width: "100%" }}
mode="dropdown"
selectedValue={move.client}
onValueChange={this.handleChange("client")}
>
{this.state.clients !== "" ? (
this.state.clients.map(client => {
return <Picker.Item label={client.name} value={client.id} />;
})
) : (
<Picker.Item label="Loading..." value="0" />
)}
</Picker>
और साथ ही, इसमें एक भ्रम प्रतीत होता है this.state.clients !== ""
(आपकी टिप्पणियों को ऊपर देखा और इसका उत्तर देने के बारे में सोचा)। आप इसकी तुलना इस बात से कर सकते हैं कि आपने अपनी कक्षा के अंदर constructor(props)
फ़ंक्शन के अंदर this.state
को कैसे प्रारंभ किया है।
उदाहरण के लिए:
यदि आपका कोड इस तरह है:
constructor(props){
super(props);
this.state={clients:{}};
}
तो आपको चाहिए:
{this.state.clients !== {} ? (<Picker.Item />):(<Picker.Item label='loading' />)}
या यदि आपका कोड इस तरह है:
constructor(props){
super(props);
this.state={clients:''};
}
तो आपको चाहिए:
{this.state.clients !== '' ? (<Picker.Item />):(<Picker.Item label='loading' />)}
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
arrays
एक सरणी एक आदेशित रैखिक डेटा संरचना है जिसमें तत्वों (मूल्यों, चर, या संदर्भों) का एक संग्रह होता है, प्रत्येक को एक या अधिक अनुक्रमित द्वारा पहचाना जाता है। जब सरणियों के विशिष्ट प्रकारों के बारे में पूछा जाता है, तो इसके बजाय इन संबंधित टैगों का उपयोग करें: [वेक्टर], [सरणी सूची], [मैट्रिक्स]। इस टैग का उपयोग करते समय, एक सवाल जो प्रोग्रामिंग भाषा के लिए विशिष्ट होता है, उस प्रश्न को उस प्रोग्रामिंग भाषा के साथ टैग करें जिसका उपयोग किया जा रहा है।