スポンサーリンク

React クリックイベントの基本形

JavaScript
たろ
たろ

Reactのクリックイベントの実装方法がわからない。

こんな疑問を解決します。

本記事の内容
  • Reactのクリックイベントの実装方法の紹介
  • 具体的なコードと実演も合わせて紹介

React のクリックイベントの基本形をメモしておきます。

初めて学ぶ言語は何度も繰り返し書かないと忘れがちなので、、、

スポンサーリンク

これまでのReact学習記録

環境

実験は下記のファイル構成。

.
├── Dockerfile
├── css
│   └── styles.css
├── index.html
└── js
    └── script.js

ローカル環境で作業しています↓

index.html は下記の通り。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>React Practice</title>
  <link rel="stylesheet" href="./css/styles.css?1001">
  <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
  <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
  <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <!-- <script type="text/javascript" src="./js/scriptj.js"></script> -->
  <script type="text/babel" src="./js/script.js"></script>

</head>
<body>
  <div id="root"></div>
</body>
</html>

Reactの実装

script.js に下記のコードを貼り付けます。

class App extends React.Component {
  constructor(props) {
    super(props);
        
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    alert('ボタンがクリックされました。')
  }

  render () {
    return (
      <div>
        <button onClick={this.handleClick}>ボタン</button>
      </div>
    )
  }
}

ReactDOM.render(
  <App/>,
  document.getElementById('root')
);

JavaScript では、クラスのメソッドはデフォルトではバインドされないため、this.handleClick へのバインドをせずに onClick に実装した場合、関数が呼ばれた時に this は undefined となります。

constructorthis.handleClick = this.handleClick.bind(this); と書くことがポイント。

検証

コメント

  1. […] […]

タイトルとURLをコピーしました