38
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AtraeAdvent Calendar 2016

Day 21

Reactで動的なclassNameを指定する方法

Last updated at Posted at 2016-12-21

最近また睡眠時間が減ったせいか、逆流性食道炎ぎみなアトラエデザイナー、紺谷でございます。
弊社も最近、Reactを導入し始めまして、デザイナーの私としてはかるーくキャッチアップしていじってる具合であります。

以前はRailsでなんとなーくif文とか使いながらHTMLの中にゴリッと動的なclass名を割り当ててましたが、Reactになってどうも勝手が違う。
そこでちょっと調べてみたら classnames っていう便利なものがあったので触ってみました。

まずは npmclassnames をインストールします。

npm install classnames --save

で、以下のように利用しましょう。

import React, { Component } from 'react';
import ReactDOM from 'react-dom';

import ClassNames from 'classnames';


class ListItem extends Component {
  render() {
  
    const classNameForListItem = ClassNames({
      "list-item": true,
      "is-newest": this.props.status === "non-read"
    });
    
    return (
      <ListItem className={classNameForListItem}>
        ・・・
      </ListItem>
    )
  }
}

上記の例だと、
list-item が常に利用するクラスなので true
is-newestthis.props.status === "non-read" の時だけ利用するクラス。

他の書き方としては、

    const classNameForListItem = ClassNames(
    	"list-item",
    	{
	      "is-newest": this.props.status === "non-read"
    	}
    );

と書いても上記と同じ意味になります。

さて、今年も残り攻めようっと。
来年はもっと攻めようっと。

みなさん良いお年を。

38
33
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
38
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?