【React入門⑥】Stateを使ってコンポーネントに値を渡す

f:id:nekorokkekun:20190904165248p:plain:w1000
こちらの記事は、React入門チュートリアルです。

Reactが初めての私がReactを実装していく流れとなるため、初心者の方のつまずきやすいポイントを一通りフォローアップできる内容となっています。

Stateとは

前回のチュートリアルで解説したpropsは、データを受け渡すための機能であり、いわば「不変のデータ」です。

しかし時には、状態によって値を変化させたい場合もあるはずです。

Stateはそもそも「状態」という意味があり、「変更可能な要素」として値を受け渡すことが可能です。

またStateは、設定したコンポーネント内でしか値を変更することはできません。

具体例は以下で見ていきましょう。

Stateを使ってみる

src/index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';

ReactDOM.render(<App />, document.getElementById('root')); // コメントアウトを外す

// 省略

src/App.js

import React, {Component} from 'react';

class Greeting extends Component {
// Constructorで描画時にstateを読み込ませる
  constructor() {
// JSでConstructorを使用する際はsuper();の記述必須
    super();
    this.state = {
      time: false
    };
  }

  render() {
    return (
      <p>
// Stateの値によって表示を出し分ける
        {this.state.time ? 'Good Morning' : 'Good Afternoon'}
      </p>
    )
  }
}

export default Greeting;

このような形でStateの値によって表示の出し分けが可能となります。