Koşullu işlemeye sahip bir görünüm bileşenim olduğunu varsayalım:
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>
);
}
}
Girdiğim şuna benzer:
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
Doğru olduğunu söyleyelim . Onu yanlış olarak değiştirdiğimde ve diğer görünüm işlediğinde, yalnızca unemployment-duration
yeniden başlatılıyor. Ayrıca unemployment-reason
, değeriyle önceden doldurulur job-title
(koşul değişmeden önce bir değer verilmişse).
İkinci oluşturma rutinindeki işaretlemeyi şöyle değiştirirsem:
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>
);
}
}
Görünüşe göre her şey yolunda gidiyor. Görünüşe göre React, "iş unvanı" ve "işsizlik nedeni" ni ayırt edemiyor.
Lütfen bana neyi yanlış yaptığımı söyle ...
data-reactid
her birindeMyInput
(veyainput
DOM'da görüldüğü gibi) neler varemployed
?