在一个元素上设置样式,有一个固定的样式,然后还有一个使用三元运算符根据条件添加的样式。
比如说有一个固定样式
"title"
:
<div className=
"title"
>标题</div>,
然后还要一个点击高亮的样式:
<div className={index ===
this
.state.active ?
"active"
:
null
}>标题</div>
不能这样写:
<div className=
"title"
className={index ===
this
.state.active ?
"active"
:
null
}>标题</div>
方法一:ES6 模板字符串 “
className={`title ${index === this.state.active ? 'active' : ''}`}
方法二:join(“”)
className={["title", index === this.state.active?"active":null].join(' ')}
方法三:classnames(需要下载classnames)
const classNames = require('classnames');
const Button = React.createClass({
// ...
render () {
const btnClass = classNames({
btn: true,
'btn-pressed': this.state.isPressed,
'btn-over': !this.state.isPressed && this.state.isHovered
});
return <button className={btnClass}>{this.props.label}</button>;
}
});
个人喜好 第二种,一方面代码量少,另一方面方便对 className数组的增加与删除。
版权声明:本文为qq_35605231原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。