【发布时间】:2019-10-04 05:37:50
【问题描述】:
我已经从状态中破坏了“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";
};
【问题讨论】:
-
您可能正在寻找
useState:reactjs.org/docs/hooks-reference.html#usestate -
能否请您也用适合您的 IF 示例填写代码?
-
我开始写一个答案,但是你这里的用法没有意义。使用三元组运行
console.log是对三元组的滥用。答案是您需要将return移到条件(return password === retypepassword)之前,但无论如何您都不应该在这里使用三元组。只需使用if声明即可。 -
这里的
return语句只在匹配的情况下执行,它返回的是console.log的结果,即undefined。在不匹配的情况下,您不会返回任何内容。所以这个处理程序总是返回undefined。也许你的意思是return password === retyepassword ? 'form submitted' : 'password does not match'?不清楚你想在这里做什么。
标签: javascript reactjs state ternary-operator