为什么三元运算符不处理状态属性
Why is not the ternary operator working on state properties
我已经从状态中销毁了 "password" 和 "retypepassword" 属性,现在尝试对它们应用条件。当我使用 if 和 else 语句时它工作得很好但是当我使用三元运算符时它不工作。我检查了三元运算符的格式,和我写的一样,但还是不行。
请让我知道我做错了什么!
SubmitHandler = e => {
e.preventDefault();
const { password, retypepassword } = this.state;
// if (password === retypepassword) {
// console.log("password not match");
// } else console.log(this.state);
password === retypepassword
? return(console.log("form submitted"))
: "password does not match";
};
为了匹配您的 if/else
行为:
console.log(password === retypepassword ? "form submitted" : this.state);
问题是您的 if/else 块中的代码与三元语句中的代码不同。
看看在你的 if/else 中你没有返回任何东西,而你在这两种情况下都 console.log()ing?
只需让您的三元运算符执行相同的操作即可:
SubmitHandler = e => {
e.preventDefault();
const { password, retypepassword } = this.state;
password === retypepassword
?
console.log("form submitted")
:
console.log("password does not match")
};
但是为了可读性,我不认为三元以这种方式使用,即使它在技术上是可行的。
我已经从状态中销毁了 "password" 和 "retypepassword" 属性,现在尝试对它们应用条件。当我使用 if 和 else 语句时它工作得很好但是当我使用三元运算符时它不工作。我检查了三元运算符的格式,和我写的一样,但还是不行。
请让我知道我做错了什么!
SubmitHandler = e => {
e.preventDefault();
const { password, retypepassword } = this.state;
// if (password === retypepassword) {
// console.log("password not match");
// } else console.log(this.state);
password === retypepassword
? return(console.log("form submitted"))
: "password does not match";
};
为了匹配您的 if/else
行为:
console.log(password === retypepassword ? "form submitted" : this.state);
问题是您的 if/else 块中的代码与三元语句中的代码不同。
看看在你的 if/else 中你没有返回任何东西,而你在这两种情况下都 console.log()ing?
只需让您的三元运算符执行相同的操作即可:
SubmitHandler = e => {
e.preventDefault();
const { password, retypepassword } = this.state;
password === retypepassword
?
console.log("form submitted")
:
console.log("password does not match")
};
但是为了可读性,我不认为三元以这种方式使用,即使它在技术上是可行的。