我已经从状态中破坏了“ 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";
};
答案 0 :(得分:4)
要匹配checks
的行为,请执行以下操作:
if/else
答案 1 :(得分:0)
三元运算符只能通过用来为变量赋值, 换句话说,您无法将console.log(“ something”)分配给变量。 实现此目的的一种方法是将字符串值分配给变量,然后将其注销。 因此,您可以按照以下方式进行操作:
return password === retypepassword ? "form submitted" : "password does not match"; // and then log it out.
答案 2 :(得分:0)
问题在于if / else块中的代码与三元语句中的代码不同。
看看在if / else中您什么都不返回,而在两种情况下都可以console.log()进行操作?
只需让您的三元运算符做同样的事情即可
SubmitHandler = e => {
e.preventDefault();
const { password, retypepassword } = this.state;
password === retypepassword
?
console.log("form submitted")
:
console.log("password does not match")
};
但是出于可读性考虑,即使技术上可行,我也不认为三元是这样使用的。