বলি আমার কাছে একটি ভিউ উপাদান রয়েছে যা শর্তাধীন রেন্ডার রয়েছে:
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>
);
}
}
মাইআইনপুট এরকম কিছু দেখাচ্ছে:
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>
);
}
}
মনে হচ্ছে সবকিছু ঠিকঠাক কাজ করে। দেখে মনে হচ্ছে প্রতিক্রিয়া কেবলমাত্র 'চাকরি-শিরোনাম' এবং 'বেকারত্ব-কারণ' এর সাথে পৃথক হতে ব্যর্থ।
দয়া করে আমাকে বলুন আমি কী ভুল করছি ...
data-reactidপ্রতিটিরMyInput(অথবাinput, DOM মধ্যে দেখা) আগে ও পরে উপাদানemployedসুইচ?