为什么三元运算符不处理状态属性

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")
  };

但是为了可读性,我不认为三元以这种方式使用,即使它在技术上是可行的。