यहां एक संपूर्ण समाधान दिया गया है जिसमें सबसे अच्छा उत्तर और इसके नीचे की टिप्पणियाँ शामिल हैं (जो किसी को इसे एक साथ मिलाने के लिए संघर्ष करने में मदद कर सकता है):
ईएस 6 (2019) के लिए अद्यतन - तीर के कार्यों और ऑब्जेक्ट विनाशकारी का उपयोग करना
मुख्य घटक में:
class ReactMain extends React.Component {
constructor(props) {
super(props);
this.state = { fruit: props.item.fruit };
}
handleChange = (event) => {
this.setState({ [event.target.name]: event.target.value });
}
saveItem = () => {
const item = {};
item.fruit = this.state.fruit;
// do more with item object as required (e.g. save to database)
}
render() {
return (
<ReactExample name="fruit" value={this.state.fruit} handleChange={this.handleChange} />
)
}
}
शामिल घटक (जो अब एक स्टेटलेस फंक्शनल है):
export const ReactExample = ({ name, value, handleChange }) => (
<select name={name} value={value} onChange={handleChange}>
<option value="A">Apple</option>
<option value="B">Banana</option>
<option value="C">Cranberry</option>
</select>
)
प्रीवियस ANSWER (बाइंड का उपयोग करके):
मुख्य घटक में:
class ReactMain extends React.Component {
constructor(props) {
super(props);
// bind once here, better than multiple times in render
this.handleChange = this.handleChange.bind(this);
this.state = { fruit: props.item.fruit };
}
handleChange(event) {
this.setState({ [event.target.name]: event.target.value });
}
saveItem() {
const item = {};
item.fruit = this.state.fruit;
// do more with item object as required (e.g. save to database)
}
render() {
return (
<ReactExample name="fruit" value={this.state.fruit} handleChange={this.handleChange} />
)
}
}
शामिल घटक (जो अब एक स्टेटलेस फंक्शनल है):
export const ReactExample = (props) => (
<select name={props.name} value={props.value} onChange={props.handleChange}>
<option value="A">Apple</option>
<option value="B">Banana</option>
<option value="C">Cranberry</option>
</select>
)
मुख्य घटक फल के लिए चयनित मूल्य को बनाए रखता है (राज्य में), इसमें शामिल घटक चुनिंदा तत्व प्रदर्शित करता है और अपडेट को अपने राज्य को अपडेट करने के लिए मुख्य घटक पर वापस भेज दिया जाता है (जो तब चयनित मूल्य को बदलने के लिए शामिल घटक पर वापस जाता है)।
एक नाम प्रोप के उपयोग पर ध्यान दें जो आपको उनके प्रकार की परवाह किए बिना एक ही रूप में अन्य फ़ील्ड के लिए एकल हैंडलचेंज विधि की घोषणा करने की अनुमति देता है।