我有一个React App,我必须选择手机的版本,然后确认新选择的版本。这是React组件的一些代码:
constructor(props){
super(props);
this.toggleModal=this.toggleModal.bind(this);
this.onChange=this.onChange.bind(this);
this.handleSelect=this.handleSelect.bind(this);
this.confirmChange=this.confirmChange.bind(this);
this.newValue="";
}
newValue: string
readonly state={
"id": this.props.todo.id,
"version": this.props.todo.version,
"newVersion": ""
}
confirmChange(){
this.setState({version:this.newValue});
}
onChange(e){
this.newValue=e.target.value;
}
在此,onChange是一个在用户选择版本时触发的函数,而当用户确认选择时将触发ConfirmChange函数。 在onChange事件中,e.target.value是新选择的版本,但是当我尝试访问this.newValue变量时,其值为:“”(空字符串)。 什么可能导致这种行为?
答案 0 :(得分:2)
您可以通过这种方式进行。 状态更新后,将同时调用渲染。您可以在 confirmChange 函数中获取 newValue 的更新值。
$("form.validetta").validetta({
errorClass: 'v-error',
realTime: true,
validators: {
remote: {
check_address: {
type: 'POST',
url: 'url/Controller/ValidateAddress',
datatype: 'json'
}
}
}
});
答案 1 :(得分:0)
您可以在状态中设置newVersion而不是此值。
如果要使用上述解决方案,可以检查e.target.value中是否有值。
编码愉快!