在我的基本 React 中,我有以下 onFormSubmit 函数,它检查电子邮件和密码的目标输入。
如果提交的表单没有任何数据,则电子邮件和密码都是""
。
但是,验证函数为emailErr
和passwordErr
返回未定义。
验证函数内部的日志不会注销任何内容,但是如果我设置断点,我会看到空""
。这些空字符串应在 return 语句中验证为 true,但它们不会。
onFormSubmit(e) {
e.preventDefault();
const email = e.target.email.value;
const password = e.target.password.value;
const validate = (email, password) => {
console.log('validate');
console.log(' email', email);
console.log(' password', password);
// true means invalid
return {
email: email.length === 0,
password: password.length === 0,
};
}
const { emailErr, passwordErr } = validate(email, password);
console.log('emailErr', emailErr);
console.log('passwordErr', passwordErr);
if (emailErr) {
console.log('No email!');
}
else if (passwordErr) {
console.log('No password');
}
};
当您返回键值对时,您需要使用相同的键 解构
// suppose you are returning this
const a = {
emailErr: true,
passwordErr: true
};
console.log('correct implementation');
const { emailErr, passwordErr } = a;
console.log(emailErr)
console.log(passwordErr)
console.log('wrong implementation');
const { email, password } = a;
console.log(email)
console.log(password)