最終更新:2022-12-16 (金) 05:31:56 (496d)  

React/イベント処理
Top / React / イベント処理

https://ja.reactjs.org/tutorial/tutorial.html

https://ja.reactjs.org/docs/handling-events.html

メモ

  • React では false を返してもデフォルトの動作を抑止することができません。
  • 明示的に preventDefault を呼び出す必要があります

onClick

  • onClick={() => console.log('click')}
  • と記載したときに onClick プロパティに渡しているのは関数であることに注意してください。
  • React はクリックされるまでこの関数を実行しません。() => を書くのを忘れて onClick={console.log('click')} と書いてしまうのはよくある間違いであり、こうするとコンポーネントが再レンダーされるたびにログが表示されてしまいます。

メモ

  • Square を関数コンポーネントに変えた際、onClick={() => this.props.onClick()} をより短い onClick={props.onClick} に書き換えました(両側でカッコが消えています)。

React/クラスコンポーネント

  • クラスのメソッドはbindされないので自分でコンストラクタ内でthis.handleClick.bind(this)とする必要がある
  • 代替策
    • パブリッククラスフィールド構文を使う
    • コールバック内でアロー関数を使用する(onClick={()=>this.handleClick()})

イベント

React/合成イベント

関数をコンポーネントインスタンスにバインドするには?