मैं के साथ अपने खुद के रूप घटक बना दिया है प्रस्तुत करना() विधि इस प्रकार है:प्रतिक्रिया में बाल राज्य तक कैसे पहुंचे?
render() {
return (
<form onSubmit={this.onSubmit} ref={(c)=>this._form=c}>
{this.props.children}
</form>
)
}
सूचना है कि बच्चों को यहां {this.props.children}
रूप में प्रदान की जाती है, इसलिए उपयोगकर्ता इस तरह इस घटक का उपयोग कर सकते हैं:
<Form onSubmit={this.submit} >
<Input name={"name"} id="name" labelName="Ime" placeholder="Unesite ime" type="text" >
<Validation rule="required" message="Ovo je obavezno polje"/>
</Input>
<Input name={"email"} id="email" labelName="Email" placeholder="Unesite email adresu" type="text" >
<Validation rule="required" message="Ovo je obavezno polje"/>
<Validation rule="email" message="Ovo je nije valjana email adresa"/>
</Input>
<button type="submit" value="Pošalji" >Pošalji</button>
</Form>
मैं onSubmitMethod()
के अंदर प्रत्येक Input
घटक (इसकी वैधता प्राप्त करने के लिए) की स्थिति जांचना चाहता हूं।
checkValidity() {
var sefl = this;
this.props.children.map((child) => {
if (child.type.name === "Input") {
//How to get state of child here
}
});
}
onSubmit(event) {
event.preventDefault();
var obj = serialize(this._form, { hash: true });
const validityOfForm = true; //hardcoded for now
this.checkValidity();
this.props.onSubmit(obj, validityOfForm);
}
हां, लेकिन इनपुट रेफरी फॉर्म घटक का रेफरी नहीं है, इसलिए जब मैं यह कहता हूं। फॉर्म घटक के अंदर रीफ्स मुझे अपरिभाषित –
अन्य समस्या अब मेरे पास है .refs.myinput.state केवल उस स्थिति को लौटाता है जिसे परिभाषित किया गया था पहली बार (अभियंता के अंदर) अद्यतित राज्य नहीं। –