मेरे घटक के रेंडर फंक्शन में मेरे पास:
render() {
const items = ['EN', 'IT', 'FR', 'GR', 'RU'].map((item) => {
return (<li onClick={this.onItemClick.bind(this, item)} key={item}>{item}</li>);
});
return (
<div>
...
<ul>
{items}
</ul>
...
</div>
);
}
सब कुछ ठीक है, लेकिन जब <li>
मैं निम्नलिखित त्रुटि प्राप्त करता है तो तत्व पर क्लिक करते हुए:
बिना त्रुटि के त्रुटि: अपरिवर्तनीय उल्लंघन: वस्तुएं एक प्रतिक्रियाशील बच्चे के रूप में मान्य नहीं हैं (पाया: कुंजियों के साथ वस्तु {dispatchConfig, dispatchMarker, nativeEvent, target, currentTarget, type, eventPhase, बुलबुले, रद्द करने योग्य, टाइमस्टैम्प, डिफ़ॉल्टप्रशिक्षित, isTrusted, दृश्य, विस्तार, स्क्रीनएक्स , screenY, clientX, clientY, ctrlKey, shiftKey, altKey, metaKey, getModifierState, बटन, बटन, संबंधितटार्गेट, पेजएक्स, पेजवाई, isDefaultPentvented, isPropagationStontin, _dispatchListeners, _dispatchIDs}। यदि आप बच्चों के संग्रह को प्रस्तुत करना चाहते हैं, तो इसके बजाय एक सरणी का उपयोग करें या रिएक्ट ऐड-ऑन से createFragment (ऑब्जेक्ट) का उपयोग करके ऑब्जेक्ट को लपेटें। की रेंडर विधि की जाँच करें
Welcome
।
अगर मैं मानचित्र फ़ंक्शन के अंदर करने के this.onItemClick.bind(this, item)
लिए बदलूं तो (e) => onItemClick(e, item)
सब कुछ उम्मीद के मुताबिक काम करता है।
अगर कोई समझा सकता है कि मैं क्या गलत कर रहा हूं और समझाऊंगा कि मुझे यह त्रुटि क्यों मिली, तो यह बहुत अच्छा होगा
अद्यतन 1:
onItemClick फ़ंक्शन निम्नानुसार है और इसे हटा देना है। त्रुटि परिणाम गायब होने का परिणाम।
onItemClick(e, item) {
this.setState({
lang: item,
});
}
लेकिन मैं इस लाइन को हटा नहीं सकता क्योंकि मुझे इस घटक की स्थिति को अपडेट करने की आवश्यकता है
this.onItemClick
लागू किया जाता है?