react设置多个className

react设置多个className

 

在一个元素上设置样式,有一个固定的样式,然后还有一个使用三元运算符根据条件添加的样式。

1
2
3
4
5
6
比如说有一个固定样式"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 模板字符串 ``

1
className={`title ${index === this.state.active ? 'active' ''}`}

  

方法二:join("")

1
className={["title", index === this.state.active?"active":null].join(' ')}

目前是没有问题的 ,中间加空格。逗号绝对不行。

方法三:classnames(需要下载classnames)

1
2
3
4
5
6
7
8
9
10
11
12
13
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>;
  }
});

posted on 2023-12-11 19:53  漫思  阅读(432)  评论(0编辑  收藏  举报

导航