परिवर्तन की घटना <select>
तत्व पर शुरू होती है, तत्व पर नहीं <option>
। हालाँकि, यह एकमात्र समस्या नहीं है। जिस तरह से आपने change
फ़ंक्शन को परिभाषित किया है वह घटक के एक रेंडरर का कारण नहीं होगा। ऐसा लगता है कि आपने अभी तक रिएक्ट की अवधारणा को पूरी तरह से समझ नहीं पाया है, इसलिए हो सकता है कि "रिएक्ट में सोच" मदद करता है।
आपको चयनित मान को राज्य के रूप में संग्रहीत करना होगा और मूल्य में परिवर्तन होने पर राज्य को अपडेट करना होगा। राज्य को अपडेट करना घटक के एक रेंडर को ट्रिगर करेगा।
var MySelect = React.createClass({
getInitialState: function() {
return {
value: 'select'
}
},
change: function(event){
this.setState({value: event.target.value});
},
render: function(){
return(
<div>
<select id="lang" onChange={this.change} value={this.state.value}>
<option value="select">Select</option>
<option value="Java">Java</option>
<option value="C++">C++</option>
</select>
<p></p>
<p>{this.state.value}</p>
</div>
);
}
});
React.render(<MySelect />, document.body);
यह भी ध्यान दें कि <p>
तत्वों की value
विशेषता नहीं है । प्रतिक्रिया / JSX बस अच्छी तरह से ज्ञात एचटीएमएल वाक्य रचना प्रतिकृति है, यह (के अपवाद के साथ कस्टम विशेषताओं को लागू नहीं करता है key
और ref
)। यदि आप चाहते हैं कि चयनित मूल्य <p>
तत्व की सामग्री हो, तो बस इसके अंदर रखें, जैसे आप किसी स्थिर सामग्री के साथ करेंगे।
इवेंट हैंडलिंग, स्थिति और प्रपत्र नियंत्रण के बारे में और जानें:
value
के समान आंतरिक पाठ कैसे प्राप्त कर सकता हूं ?