在一個元素上設置樣式,有一個固定的樣式,然后還有一個使用三元運算符根據條件添加的樣式。
比如說有一個固定樣式"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)
var classNames = require('classnames');
var Button = React.createClass({
// ...
render () {
var 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>;
}
});
