反应-变量值未正确更改

时间:2018-07-10 06:15:15

标签: javascript reactjs

我有一个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变量时,其值为:“”(空字符串)。 什么可能导致这种行为?

2 个答案:

答案 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中是否有值。

编码愉快!