有条件地呈现多个语句

时间:2020-08-26 23:37:26

标签: reactjs conditional-statements

在以下代码中,当用户单击“提交”按钮时,应该更新并记录“ Hi”。我尝试使用&&运算符来完成两个不同的任务。

type === "text" ? 
setTodos(updatedText) &&
console.log("HI") 
:
console.log(event.target)   
}

1 个答案:

答案 0 :(得分:1)

调度函数(例如setTodos)不返回值。

如果expression1 && expression2为假,

expression1将解析为expression1,并且不会求值expression2。这就是未记录HI的原因。

由于您没有将结果用作表达式,但是您只打算运行一些声明(运行setTodos并将内容记录到控制台),此处的条件运算符不是正确的选择。使用if / else代替:

if (type === 'text') {
  setTodos(updatedText);
  console.log("HI");
} else {
  console.log(event.target)  
}

从技术上讲,可以使用逗号运算符将其编写为一个大表达式,但是请不要:

type === "text"
  ? (setTodos(updatedText), console.log("HI"))
  : console.log(event.target);