JXS if else class 不起作用
JXS if else class doesn't work
{item.status}
<div className="{item.status !== '' ? 'hide' : ''} pull-right">Content</div>
为什么上面的jsx没有效果?我的 item.status 值为字符串。但是在我的 DOM 中,我看不到添加了隐藏 class。
这是因为您将三元运算符包装在 " 中,因此它被视为字符串。试试这个:
{item.status}
<div class={"pull-right "+(item.status !== '' ? 'hide' : '')}>Content</div>
除了 @rahul-pratap-singh 所说的,考虑使用名为 classnames
- link here 的漂亮的小包,这样你就可以像这样使用它:
import classes from 'classnames';
// later on
<div className={classes({
"pull-right": true,
"hide": item.status !== '',
})} />
我认为它比连接字符串更简洁。
或者至少使用 es6 字符串插值 - link here
// instead of
"pull-right "+(item.status !== '' ? 'hide' : '')
// with string interpolation
`pull-right ${item.status.length ? '' : 'hide'}`;
{item.status}
<div className="{item.status !== '' ? 'hide' : ''} pull-right">Content</div>
为什么上面的jsx没有效果?我的 item.status 值为字符串。但是在我的 DOM 中,我看不到添加了隐藏 class。
这是因为您将三元运算符包装在 " 中,因此它被视为字符串。试试这个:
{item.status}
<div class={"pull-right "+(item.status !== '' ? 'hide' : '')}>Content</div>
除了 @rahul-pratap-singh 所说的,考虑使用名为 classnames
- link here 的漂亮的小包,这样你就可以像这样使用它:
import classes from 'classnames';
// later on
<div className={classes({
"pull-right": true,
"hide": item.status !== '',
})} />
我认为它比连接字符串更简洁。
或者至少使用 es6 字符串插值 - link here
// instead of
"pull-right "+(item.status !== '' ? 'hide' : '')
// with string interpolation
`pull-right ${item.status.length ? '' : 'hide'}`;