मेरे पास एक घटक है, मान लें कि इसमें एक फॉर्म है। इस फॉर्म में बाल घटक हैं जो टेक्स्ट इनपुट को आउटपुट करने और मेनू चुनने के लिए अनिवार्य रूप से यूआई विजेट हैं।प्रतिक्रिया: बाल घटक घटनाओं को कैसे सुनें
चुनिंदा मेनू घटक थोड़ा फैंसी हैं और ऑन चेंज इवेंट का उपयोग करके कुछ राज्य बनाए रखते हैं।
मेरा प्रश्न है; मैं अभिभावक (फॉर्म) घटक से एक चयन मेनू के लिए ऑन चेंज ईवेंट में कैसे लगा सकता हूं? मैं प्रोप के माध्यम से चार्ज नहीं कर सकता क्योंकि मेरे पास पहले से ही चयन घटक के अंदर निर्दिष्ट चेंज है और मैं इसे ओवरराइड नहीं करना चाहता हूं।
उदाहरण:
var Form = React.createClass({
handleSelectChange: function(){
// Do something when <Select /> changes
},
render: function() {
var selectMenuOptions = [
{label: 'Choose...', value: ''},
{label: 'First option', value: 'one'},
{label: 'Second option', value: 'two'}
];
return (
<form>
<Select name="selectMenu" id="selectMenu" options={selectMenuOptions} />
</form>
);
}
});
var Select = React.createClass({
getDefaultProps: function() {
return {
options: [],
className: "select"
};
},
getInitialState: function() {
return {
buttonText: 'Loading...',
defaultValue: null
};
},
handleChange: function (e) {
// Update buttonText state
},
render: function() {
return (
<div className={this.props.className}>
<div className="select__button">{this.state.buttonText}</div>
<select className="select__selector"
ref="select"
onChange={this.handleChange}>
{this.props.options.map(function(option, i){
return (<Option option={option} key={i} />);
})}
</select>
</div>
);
}
});
वास्तविक घटकों के लिए कोड पोस्ट करें। –
कोड उदाहरण जोड़ा गया। – Simon