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