Мой код
class Com extends React.Component {
constructor(props) {
super(props);
this.state = {is_clicked: false};
}
render() {
let sub_com1 = () => {
return (
<div>Input1:<input/></div>
);
};
let sub_com2 = () => {
return (
<div>Input2:<input/></div>
);
};
return (
<div>
<div>
{this.state.is_clicked ? sub_com1() : sub_com2()}
</div>
<button onClick={()=>{
let is_clicked=this.state.is_clicked;
this.setState({is_clicked: !is_clicked});
}}>
Click me
</button>
</div>
);
}
}
и отображение в реальном времени: codepen .
В этом коде я использую условный рендеринг в методе рендеринга Com
.
Что я ожидаю
Каждый раз, когда я нажимаю кнопку, область ввода должна очищаться, поскольку она отображается для другого компонента
То, что я встретил
Каждый раз, когда я нажимаю кнопку, метка «input1» или «input2» менялась, но область ввода не очищалась.