2017-05-08 11 views
1

私の基本的なリアクションでは、emailとパスワードの入力をチェックする次のonFormSubmit関数があります。真偽の代わりにエラーチェックで未定義を返す関数の検証

フォームがデータなしで送信された場合、電子メールとパスワードは両方とも""です。

しかし、emailErrpasswordErrの両方に対して、validate関数は未定義を返します。

validate関数内のログは何もログアウトしませんが、ブレークポイントを設定すると空の""が表示されます。これらの空の文字列は、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'); 
    } 

}; 

答えて

1

キーと値のペアを返していると、あなたは

// 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)

を非構造ながら、同じキーを使用する必要があります
関連する問題