誰かがこのコードを見ることができますか?明らかにそれらは同等ではない。undefinedをチェックするこの方法はどうしてうまくいかないのですか?
これは私がしたいように振る舞いませんでした私の元のコードでした。基本的に、私が望むのは、変数が定義されている場合にのみ変数を検証することです。ログを無視します。それらはデバッグのためのものでした。 これは予想通り、この作品が期待
let { fullName, email, password } = userInformation;
if(email){
console.log("EMAIL IS DEFINED");
if(!validator.isEmail(email)) {
errors.email = "Please enter a valid email address";
}
}
if(fullName){
console.log("FULLNAME IS DEFINED");
if(validator.isEmpty(fullName)){
errors.fullName = "Fullname is required";
}
}
if(password){
console.log("PASSWORD IS DEFINED");
if(validator.isEmpty(password)){
errors.password = "Password is required";
}
}
として動作しません。それはなぜそうですか?
let { fullName, email, password } = userInformation;
if(!email){
console.log("EMAIL IS DEFINED");
if(!validator.isEmail(email)) {
errors.email = "Please enter a valid email address";
}
}
if(!fullName){
console.log("FULLNAME IS DEFINED");
if(validator.isEmpty(fullName)){
errors.fullName = "Fullname is required";
}
}
if(!password){
console.log("PASSWORD IS DEFINED");
if(validator.isEmpty(password)){
errors.password = "Password is required";
}
}
編集:基本的には何が起こるたいのは、変数がを定義されている場合の検証を実行することです。現在のところ、2番目の例が妥当でない限り、検証していないということです。
最初のアプローチで直面している問題は何ですか? – motanelu
'fullName、email、password'は** undefined **ですね。これが第二の「アプローチ」が機能する理由です。 – evolutionxbox
あなたは右に何の感嘆符が使われているのか知っていますか?ですから、それがうまくいくならば、おそらくuserInformation行の直後に変数を記録しようとすることができます。 – moped