我有一个布尔道具反应,我正在尝试使用它,如下所示:
const MyComponent = ({ prop1, prop2, isBoolean }) => {
...do something..
return (
if (isBoolean) ? (do this) : (do that)
}
所以我说如果isBoolean为true,那么就这样做吧。这是正确的语法吗?
答案 0 :(得分:1)
如果你想在return ( expression )
内进行条件渲染,你需要使用三元运算符。
const MyComponent = ({ prop1, prop2, isBoolean }) => {
// ...do something..
return (
{ isBoolean ? (do this) : (do that) }
);
};
你也可以在return语句之前执行你的条件,如下所示:
const MyComponent = ({ prop1, prop2, isBoolean }) => {
// ...do something..
const DOMToRender = isBoolean ? this : that;
return (
{ isBoolean ? (do this) : (do that) }
);
};
您还可以使用和if / else语句补充const DOMToRender = isBoolean ? this : that;
。
答案 1 :(得分:0)
如果您想使用三元运算符,则必须删除if
关键字。
isBoolean ? (do this) : (do that)
然后它确实是一个正确的语法。
答案 2 :(得分:0)
不,这不是JS中的正确语法。您在一个语句中混合了if
语句和tenary operator。正确的语法是:
如果声明
if (isBoolean) {
//do this
} else {
//do that
}
或tenary operator
isBoolean ? expression1 : expression2;
答案 3 :(得分:0)
不,简单地说:
isBoolean ? this : that
或者,对于更复杂(多行)的代码:
if (isBoolean) {
this
} else {
that
}
答案 4 :(得分:0)
如果可以在任何时候(例如默认情况下)未定义,你可以通过双重爆炸强制它为三元组的布尔值!!
return !!isBoolean ? (do this) : (do that)