Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果变量==React中的某物,如何将类分配给元素?_Javascript_Html_Reactjs - Fatal编程技术网

Javascript 如果变量==React中的某物,如何将类分配给元素?

Javascript 如果变量==React中的某物,如何将类分配给元素?,javascript,html,reactjs,Javascript,Html,Reactjs,我是一个新的反应,以前和很多人一起工作过。 在Angular中,根据变量分配某些类尽可能简单,如下所示: <p ng-class="{warning: warningLevel==3, critical: warningLevel==5}">Mars attacks!</p> var ClassnameExample = React.createClass({ render: function() { var cx = React.addons.classS

我是一个新的反应,以前和很多人一起工作过。 在Angular中,根据变量分配某些类尽可能简单,如下所示:

<p ng-class="{warning: warningLevel==3, critical: warningLevel==5}">Mars attacks!</p>
var ClassnameExample = React.createClass({
  render: function() {
    var cx = React.addons.classSet;
    var classes = cx({
      "message": true,
      "warning": this.props.warningLevel === "3",
      "critical": this.props.warningLevel === "5"
    });
    return <p className={classes}>Test</p>;
  }
});
火星攻击


如何使用React在模板中执行类似的操作?

简短回答:使用
classSet()

详细回答:

在React中没有太大的不同,除了编写一个简单的老JavaScript,所以这里有很多控件。此外,React已经有了一个漂亮的插件,使它更容易。在这种情况下,您的组件将如下所示:

<p ng-class="{warning: warningLevel==3, critical: warningLevel==5}">Mars attacks!</p>
var ClassnameExample = React.createClass({
  render: function() {
    var cx = React.addons.classSet;
    var classes = cx({
      "message": true,
      "warning": this.props.warningLevel === "3",
      "critical": this.props.warningLevel === "5"
    });
    return <p className={classes}>Test</p>;
  }
});
var ClassnameExample=React.createClass({
render:function(){
var cx=React.addons.classSet;
变量类=cx({
“信息”:没错,
“警告”:this.props.warningLevel==“3”,
“关键”:this.props.warningLevel==“5”
});
返回

Test

; } });
以下是工作示例:

请尝试在此处更改值:

React.renderComponent(<ClassnameExample warningLevel="3" />, document.body);
React.renderComponent(,document.body);

类集的另一种替代方法通常是使用简单的对象查找

var levelToClass = {
  "3": "warning",
  "5": "critical"
};

// ...
render: function(){
  var level = levelToClass[this.props.warningLevel] || "";
  return <p className={"message " + level}>Test</p>
}
var levelToClass={
“3”:“警告”,
“5”:“关键”
};
// ...
render:function(){
var level=levelToClass[this.props.warningLevel]| | |“”;
return

Test

}
或者在某些情况下是三元:

render: function(){
  var level = this.props.warningLevel === 3 ? "warning"
            : this.props.warningLevel === 5 ? "critical"
            : "";
  return <p className={"message " + level}>Test</p>
}
render:function(){
变量级别=this.props.warningLevel==3?“警告”
:this.props.warningLevel==5?“严重”
: "";
return

Test

}