检查地图中是否第一次迭代的方法

时间:2015-12-22 14:24:31

标签: javascript reactjs

我试图使用map函数在ReactJS中为一个元素添加一个类,但是对于循环中的第一个元素,这是可能/一种简单的方法吗?

return (
  <div key={itemData.itemCode} className="item active">
    Want to add 'active' class when the first but for the others dont add it
  </div>
)

1 个答案:

答案 0 :(得分:9)

如果您使用.map .forEach,那么您就可以这样做

var List = React.createClass({
    render: function() {
      var lists = this.props.data.map(function (itemData, index) {
         /// if index === 0 ( it is first element in array ) then add class active 
         var cls = (index === 0) ? 'item active' : 'item'; 

         return <div key={itemData.itemCode} className={ cls }>
           { itemData.itemValue }
         </div>;
      })
      return <div>{ lists }</div>;
    }
});

Example

如果您需要有条件地更改类,还有一个名为classnames的好包,就像您的情况一样

var List = React.createClass({
    render: function() {
      var lists = this.props.data.map(function (itemData, index) {
        return <div 
            key={itemData.itemCode} 
            className={ classnames('item', { active: index === 0 }) }>
          { itemData.itemValue }
        </div>
      })
      return <div>{ lists }</div>;
    }
});

Example