Reactjs 反应:布尔检查的正确语法是什么
我在react中有一个布尔属性,我正在尝试使用它,如下所示: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
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?这个:那个,使用和if/else语句进行编码。如果在任何一点上都可能未定义(即默认情况下),您可以通过双击将其强制为三值的布尔值
return !!isBoolean ? (do this) : (do that)
return !!isBoolean ? (do this) : (do that)