반응시 렌더링시 입력 돔이 삭제되고 그 반대의 경우도 마찬가지입니다. 상태에 값을 저장하고 입력 또는 체크 상자를 렌더링 할 때 값을 사용해야합니다. 아래 코드는 암시 적입니다. 좀 더 조정할 필요가 있습니다.
@observer class InputForm extends React.Component{
super() {
this.state = {value : '', checked : false};
}
onChangeInput (e) { this.setState({value : e.target.value});}
onChangeCheckbox (e) {this.setState({checked : e.target.checked});}
render(){
if(this.props.store.tab1.isSelected){
return <form><input onChange=this.onChangeInput.bind(this) type="text" value={this.state.value}/></form>
}else if(this.props.store.tab2.isSelected){
return <form><input onChange=this.onChangeChecbox.bind(this) type="checkbox" checked={this.state.checked}/></form>
}
}
}
각'if '아래의'form' 구성 요소가 마운트 해제되어 상태를 잃게됩니다. 입력 값을 저장하고 새 구성 요소가 마운트되면 다시 업데이트하십시오. –
@TylerSebastian 감사합니다. 샘플 코드로 시연 할 수 있는지 궁금합니다. – user3405291
React + Redux를 사용하여 위의 문제를 재현 할 수 없습니다. 대신 mobx를 사용하고 있습니다. 간단히 문서를 살펴 봤는데 (이전에 mobx로 작업 한 적이 없습니다)'