【React】関数を使ってstateの値を変える

Reactにはpropsとよく似たものにstateという機能があります。
こちらもコンポーネントに対して値を渡すことができる機能ですが、
propsが静的な値(変化しない値)である一方、stateはコンポーネント内で値を変更させることができます。

以下がその使用例です。

import React, { Component } from 'react';

const App = () => (
    <Counter></Counter>
  )

class Counter extends Component {
  constructor(props) {
    super(props) // 親コンポーネントでpropsの初期化処理
    this.state = { count: 0} // stateの値を設定する
  }

  render() {
    return (
    <div>
    { this.state.count } // stateを出力
    </div>)
  }
}
export default App;

このように記述することによって0という値が入ったcountというstateがコンポーネントに渡されます。

上記のコードを使いつつ、stateの値を上下させる関数を設定しました。

import React, { Component } from 'react';

const App = () => (
    <Counter></Counter>
  )

class Counter extends Component {
  constructor(props) {
    super(props)
    this.state = { count: 0}
  }

 // stateの値を上げるための関数
  handlePluss = () => {
    this.setState( { count: this.state.count + 1 } )
  }
 // stateの値を下げるための関数
  handleMinus = () => {
    this.setState({ count: this.state.count - 1 });
  }

  render() {
    return (
    <div>
    { this.state.count }
 // onClickでイベントの設定
    <button onClick={this.handlePluss}>+1</button> 
    <button onClick={this.handleMinus}>-1</button>
    </div>)
  }
}
export default App;

これでstateの値を変えることができるボタンが設置できました。