ここでは、次のようにプロパティ(属性)でハンドラメソッドを設定可能な React コンポーネントの実装例を示します。
ハンドラメソッドを設定可能なコンポーネントを実装する
次の MyButton
コンポーネントは、ボタンクリック時に呼び出されるイベントハンドラを、onClick
プロパティで設定できるようにしています。
この MyButton
コンポーネントは、クリックするたびに内部のカウンタ (state.count
) を +1 し、その値を指定されたイベントハンドラへ通知します。
MyButton のプロパティの型を定義しているのは次の部分です。
onClick?
とプロパティ名の末尾に ?
を付けることで、属性の指定をオプショナルにしています。
属性として設定されたハンドラメソッドは、コンポーネント内の handleClick()
メソッドの中で呼び出しています。
ハンドラメソッドの指定はオプショナルなので、演算子 ?.
を使って、ハンドラメソッドが指定されている場合のみ呼び出しています。
下記は、上記で作成した MyButton
の使用例です。
ボタンをクリックすると、onClick
属性で指定したハンドラメソッドが呼び出されます。
関連記事