有条件地使用三元运算符应用类

时间:2017-06-07 22:27:56

标签: javascript html5 reactjs jsx

我有一个Button组件,如果状态为真,我想分配一个活动课程。

<Button 
    onClick={this.preferenceHandler.bind(this, "straight")}  
    className={"col-sm-12 text-center " + (this.state.straight ? "active") }
    viewStyle=  "primary"
>
    <h4>Straight</h4>
    <i className="icon icon-ok-6"></i>
</Button>

3 个答案:

答案 0 :(得分:4)

你需要那里的虚假表达:

className={"col-sm-12 text-center " + (this.state.straight ? "active" : "") }

答案 1 :(得分:1)

如果使用classnames

,使用条件类会更好
var btnClass = classNames({
  'col-sm-12': true,
  'text-center': true,
  'active': this.state.straight
});
<Button 
    onClick={this.preferenceHandler.bind(this, "straight")}  
    className={btnClass}
    viewStyle="primary"
>
    <h4>Straight</h4>
    <i className="icon icon-ok-6"></i>
</Button>

答案 2 :(得分:0)

与@rossipedia类似,但使用ES6模板字符串

&#13;
&#13;
className={`col-sm-12 text-center ${this.state.straight ? 'active' : ''}`}
&#13;
&#13;
&#13;