根据州添加不同的 class
Add different class depending on state
我有一个 div
需要某种 background-color
。颜色取决于 div
中的值,可以是负数、零或正数。
例如:
<div className={`colors ${value > 0 ? "green" : ""}`}>{value}</div>
使用 SCSS:
.colors {
padding: 10px;
&.green {
background-color: green;
}
}
如果 value
大于 0, 将使 background-color
变为绿色。但是我如何转换它,以便如果 value
为零,则 neutral
class 加上 background-color
灰色,红色 class 加上 background-color
红色,如果是负数。
你已经非常接近三元了;您可以通过在模板中实现嵌套的三元语句轻松解决此问题。假设您有三个 CSS 类:green
代表正数,red
代表负数,neutral
代表 0.
我们可以创建一个嵌套的三元来匹配所有的操作,像这样:
value > 0
? "green" // positive, make it green
: value < 0
? "red" // negative, it's red
: "neutral" // it's neither positive nor negative; it's 0; make it neutral
在您的 JSX 中,它看起来像:
<div className={`colors {
value > 0
? "green"
: value < 0
? "red"
: "neutral"
}`>{value}</div>
另外,你可以试试这个:
const bgColor = new Map([
[false, "negative"],
[true, "positive"],
[0, "neutral"],
]);
<div className={`colors ${bgColor.get(value)}`}>{value}</>
我有一个 div
需要某种 background-color
。颜色取决于 div
中的值,可以是负数、零或正数。
例如:
<div className={`colors ${value > 0 ? "green" : ""}`}>{value}</div>
使用 SCSS:
.colors {
padding: 10px;
&.green {
background-color: green;
}
}
如果 value
大于 0, 将使 background-color
变为绿色。但是我如何转换它,以便如果 value
为零,则 neutral
class 加上 background-color
灰色,红色 class 加上 background-color
红色,如果是负数。
你已经非常接近三元了;您可以通过在模板中实现嵌套的三元语句轻松解决此问题。假设您有三个 CSS 类:green
代表正数,red
代表负数,neutral
代表 0.
我们可以创建一个嵌套的三元来匹配所有的操作,像这样:
value > 0
? "green" // positive, make it green
: value < 0
? "red" // negative, it's red
: "neutral" // it's neither positive nor negative; it's 0; make it neutral
在您的 JSX 中,它看起来像:
<div className={`colors {
value > 0
? "green"
: value < 0
? "red"
: "neutral"
}`>{value}</div>
另外,你可以试试这个:
const bgColor = new Map([
[false, "negative"],
[true, "positive"],
[0, "neutral"],
]);
<div className={`colors ${bgColor.get(value)}`}>{value}</>