验证函数在错误检查时返回未定义而不是 true



在我的基本 React 中,我有以下 onFormSubmit 函数,它检查电子邮件和密码的目标输入。

如果提交的表单没有任何数据,则电子邮件和密码都是""

但是,验证函数为emailErrpasswordErr返回未定义。

验证函数内部的日志不会注销任何内容,但是如果我设置断点,我会看到空""。这些空字符串应在 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)

相关内容

  • 没有找到相关文章

最新更新