Reactjs 反应:布尔检查的正确语法是什么

Reactjs 反应:布尔检查的正确语法是什么,reactjs,jsx,Reactjs,Jsx,我在react中有一个布尔属性,我正在尝试使用它,如下所示: const MyComponent = ({ prop1, prop2, isBoolean }) => { ...do something.. return ( if (isBoolean) ? (do this) : (do that) } 所以我是说如果isBoolean是真的,那么做这个,否则做那个。这是正确的语法吗?如果要使用三元运算符,必须删除If关键字 isBoolean ? (do this) : (do t

我在react中有一个布尔属性,我正在尝试使用它,如下所示:

const MyComponent = ({ prop1, prop2, isBoolean }) => {
...do something..
return (
 if (isBoolean) ? (do this) : (do that)
}

所以我是说如果isBoolean是真的,那么做这个,否则做那个。这是正确的语法吗?

如果要使用三元运算符,必须删除
If
关键字

isBoolean ? (do this) : (do that)

那么它确实是一个正确的语法。

不,它在JS中不是正确的语法。您将
if
语句和一个语句混合在一起。正确的语法为:

  • If语句

    if (isBoolean) {
      //do this
    } else {
      //do that
    }
    
  • 或十进制运算符

    isBoolean ? expression1 : expression2;
    
不,或者简单地说:

isBoolean ? this : that
或者,对于更复杂(多行)的代码:


如果要在
return(expression)
中执行条件渲染,则需要使用三元运算符

const MyComponent = ({ prop1, prop2, isBoolean }) => {
    // ...do something..
    return (
       { isBoolean ? (do this) : (do that) }
    );
};
您也可以在返回语句之前执行条件,如下所示:

const MyComponent = ({ prop1, prop2, isBoolean }) => {
    // ...do something..

    const DOMToRender = isBoolean ? this : that;

    return (
       { isBoolean ? (do this) : (do that) }
    );
};

您还可以回复const DOMToRender=isBoolean?这个:那个,如果在任何一点上都可能未定义(即默认情况下),您可以通过双击将其强制为三值的布尔值

return !!isBoolean ? (do this) : (do that)
return !!isBoolean ? (do this) : (do that)