कहते हैं कि मेरे पास एक दृश्य घटक है जिसमें एक सशर्त रेंडर है:
render(){
if (this.state.employed) {
return (
<div>
<MyInput ref="job-title" name="job-title" />
</div>
);
} else {
return (
<div>
<MyInput ref="unemployment-reason" name="unemployment-reason" />
<MyInput ref="unemployment-duration" name="unemployment-duration" />
</div>
);
}
}
MyInput कुछ इस तरह दिखता है:
class MyInput extends React.Component {
...
render(){
return (
<div>
<input name={this.props.name}
ref="input"
type="text"
value={this.props.value || null}
onBlur={this.handleBlur.bind(this)}
onChange={this.handleTyping.bind(this)} />
</div>
);
}
}
कहते हैं employed
, सच है। जब भी मैं इसे गलत पर स्विच करता हूं और अन्य दृश्य रेंडर करता है, तो केवल unemployment-duration
पुन: प्रारंभ किया जाता है। इसके अलावा unemployment-reason
मूल्य से पूर्वनिर्धारित हो जाता है job-title
(यदि स्थिति बदलने से पहले एक मूल्य दिया गया था)।
अगर मैं दूसरी रुटीन रूटीन में मार्कअप को कुछ इस तरह से बदलूँ:
render(){
if (this.state.employed) {
return (
<div>
<MyInput ref="job-title" name="job-title" />
</div>
);
} else {
return (
<div>
<span>Diff me!</span>
<MyInput ref="unemployment-reason" name="unemployment-reason" />
<MyInput ref="unemployment-duration" name="unemployment-duration" />
</div>
);
}
}
ऐसा लगता है जैसे सब कुछ ठीक काम करता है। ऐसा लगता है कि रिएक्ट 'जॉब-टाइटल' और 'बेरोजगारी-कारण' को अलग करने में विफल है।
कृपया बताएं कि मैं क्या गलत कर रहा हूं ...
<div>
। data-reactid
गुण दोनों रैपिंग div और इनपुट क्षेत्र पर अलग हो रहा है। job-title
इनपुट आईडी हो जाता है data-reactid=".0.1.1.0.1.0.1"
, जबकि unemployment-reason
इनपुट आईडीdata-reactid=".0.1.1.0.1.2.1"
unemployment-duration
?
reactid
विशेषताएँ समान हैं job-title
और unemployment-reason
, जबकि दूसरे उदाहरण में (डिफरेंट स्पैन के साथ) वे अलग हैं।
unemployment-duration
reactid
data-reactid
प्रत्येक पर क्या है ?MyInput
input
employed