मैं एक राज्य में नए मान सेट करने की कोशिश कर रहा हूं, लेकिन मैं इसे विधियों के साथ नहीं कर सकता, राज्य अभी भी वही है।

यहाँ एक मेरा राज्य घोषित करें

 this.state = {
    notes: [],
    selected: null
    };
}

कंपोनेंटडिडमाउंट का उपयोग करके मैं राज्य को अपडेट कर सकता हूं

  componentDidMount() {
this.setState({
  notes: this.service.notes,
  selected: {
       title: "vazio",
       text: "vazio"
     }
    });
  }

लेकिन जब मैं अद्यतन करने के लिए इस विधियों का उपयोग करता हूं, तो स्थिति वही रहती है

  onSelect(note) {
   this.setState({
   selected: note
    });
  }
0
Gabriel Barbosa 22 मार्च 2020, 01:02
आपको मेरे उदाहरण के लिए लैम्ब्डा का उपयोग करके अपने स्वयं के संदर्भ से ऑनसेलेक्ट विधि को कॉल करने की आवश्यकता है, जैसे ऑनसेलेक्ट = "() => ऑन सेलेक्ट ()"। यहां समस्या वह अनुबंध है जहां "यह" का जिक्र है। देखें developer.mozilla.org/en-US/docs /वेब/जावास्क्रिप्ट/संदर्भ/…
 – 
n9iels
22 मार्च 2020, 01:07
हां, यह मेरे नोट के लिए बाध्यकारी है कि मैं अन्य घटक में गुजर रहा हूं, क्या आप जानते हैं कि मैं उस नोट के साथ राज्य को कैसे अपडेट कर सकता हूं?
 – 
Gabriel Barbosa
22 मार्च 2020, 01:25
 – 
Max
22 मार्च 2020, 01:56
क्या आपको कोई त्रुटि हो रही है?
 – 
HMR
22 मार्च 2020, 02:44

2 जवाब

आपने कोशिश की है?

onSelect = note => {
  this.setState({
  selected: note
 });
}

यह ऑन-सिलेक्ट प्रॉपर्टी को कंपोनेंट स्कोप तक एक्सेस देता है

0
CreativeJoe 22 मार्च 2020, 02:01

प्रयत्न

onSelect = (note) => () => {
   this.setState({
      selected: note
   })
}

यह एक कॉलबैक फ़ंक्शन बनाता है, जो note को एक तर्क के रूप में प्रदान करता है

इसे इस प्रकार प्रयोग करें

onSelect={onSelect(note)}

आप जिस भी हैंडलर का उपयोग कर रहे हैं

0
andy mccullough 22 मार्च 2020, 02:05