Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 我如何在课堂上缩短我的方法?_Reactjs - Fatal编程技术网

Reactjs 我如何在课堂上缩短我的方法?

Reactjs 我如何在课堂上缩短我的方法?,reactjs,Reactjs,我如何使用能够接收状态并进行更改的函数来缩短我的方法? 这样做的目的是使方法最干净。 还要处理asicronic验证:( 这是一个可以使用onBlur方法验证的表单,但是非常大。 感谢您的帮助!组件表单 onBlur(e){ onBlurValidator(e, this); } 函数验证,将其作为参数传递 function onBlurValidator (e, form){ const field = e.target.name; const value = e.t

我如何使用能够接收状态并进行更改的函数来缩短我的方法? 这样做的目的是使方法最干净。 还要处理asicronic验证:(

这是一个可以使用onBlur方法验证的表单,但是非常大。 感谢您的帮助!

组件表单

onBlur(e){
  onBlurValidator(e, this);      
}
函数验证,将其作为参数传递

function onBlurValidator (e, form){
  const field = e.target.name;
  const value = e.target.value;
  let errors = form.state.errors;
  let validFields = form.state.validFields;
  let invalid = form.state.invalid;

  if (field === 'password2') {
    clean_password2(value, errors, validFields, invalid, form);
  }

  if (field === 'username') {
    clean_username(value, errors, validFields, invalid, form);
  }

}

function clean_password2(value, errors, validFields, invalid, form){
  // Cheack field username
  const password2 = "password2";
  const password1 = "password1";
  if (value !== form.state.password1){
    //console.log('password no conciden');
    errors[password2] = 'password no conciden';
    errors[password1] = 'password no conciden';
    validFields[password2] = '';
    invalid = true;
  }else if (value === form.state.password1){
    validFields[password2] = true;
    validFields[password1] = true;
    errors[password2] = "";
    errors[password1] = "";
    invalid = false;
  }
  form.setState({validFields, errors, invalid});

}

function clean_username (value, errors, validFields, invalid, form){
  // Cheack field username
  const username = "username";

  form.props.ifExistsField("UsersModel", username, value).then((response) => {

    if(response.data[username] !== true){
      errors[username] = response.data[username];
      validFields[username] = '';
      invalid = true;

    } else {
      validFields[username] = response.data[username];
      errors[username] = "";
      invalid = false;
    }
    form.setState({validFields, errors, invalid});
  });
}

export {onBlurValidator};

它看起来更好!

编辑是用于if form be mode update的var控件。
function onBlurValidator (e, form){
  const field = e.target.name;
  const value = e.target.value;
  let errors = form.state.errors;
  let validFields = form.state.validFields;
  let invalid = form.state.invalid;

  if (field === 'password2') {
    clean_password2(value, errors, validFields, invalid, form);
  }

  if (field === 'username') {
    clean_username(value, errors, validFields, invalid, form);
  }

}

function clean_password2(value, errors, validFields, invalid, form){
  // Cheack field username
  const password2 = "password2";
  const password1 = "password1";
  if (value !== form.state.password1){
    //console.log('password no conciden');
    errors[password2] = 'password no conciden';
    errors[password1] = 'password no conciden';
    validFields[password2] = '';
    invalid = true;
  }else if (value === form.state.password1){
    validFields[password2] = true;
    validFields[password1] = true;
    errors[password2] = "";
    errors[password1] = "";
    invalid = false;
  }
  form.setState({validFields, errors, invalid});

}

function clean_username (value, errors, validFields, invalid, form){
  // Cheack field username
  const username = "username";

  form.props.ifExistsField("UsersModel", username, value).then((response) => {

    if(response.data[username] !== true){
      errors[username] = response.data[username];
      validFields[username] = '';
      invalid = true;

    } else {
      validFields[username] = response.data[username];
      errors[username] = "";
      invalid = false;
    }
    form.setState({validFields, errors, invalid});
  });
}

export {onBlurValidator};