[英]conditional rendering to display in React
返回的 JSX 不包括您的if
/ else
语句中的 JSX。 它必须是返回的 JSX 的一部分才能显示出来。
您可以使用三元表达式来执行此操作(在您的return
语句之后将其添加到 JSX,将其放在您希望呈现徽章的任何位置):
{ props.openSpots === 0 ? <div className="card--badge">SOLD OUT</div> : null }
{ props.openSpots > 0 && props.location === "Online" ? <div className="card--badge">Online</div> : null }
如果你想要一个语句,你可以嵌套它们,但这开始变得难以阅读:
{
props.openSpots === 0
? <div className="card--badge">SOLD OUT</div>
: props.location === "Online"
? <div className="card--badge">Online</div>
: null
}
您没有在渲染部分使用 JSX,它只是一个声明。
将 JSX 保存在变量中,如下所示:
let badge = null
if (openSpots === 0) {
badge = ..
} else if (..) {
badge = ..
}
// Use it in code
...
<div class="card-badge">{badge}</div>
或者使用条件渲染内联
只需将您的代码段分配给一个变量,然后在您想要的任何地方渲染它。😊
...
const badge = openSpots === 0 ? <div className="card--badge">SOLD OUT</div> : <div className="card--badge">Online</div>
...
return (
<div>
{badge}
</div>
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.