<KeyboardShortcuts />shortcuts プロパティオブジェクトでレンダリングします:

  1. import { useState } from 'react';
  2. import { KeyboardShortcuts } from '@wordpress/components';
  3. const MyKeyboardShortcuts = () => {
  4. const [ isAllSelected, setIsAllSelected ] = useState( false );
  5. const selectAll = () => {
  6. setIsAllSelected( true );
  7. };
  8. return (
  9. <div>
  10. <KeyboardShortcuts
  11. shortcuts={ {
  12. 'mod+a': selectAll,
  13. } }
  14. />
  15. [cmd/ctrl + A] Combination pressed? { isAllSelected ? 'Yes' : 'No' }
  16. </div>
  17. );
  18. };

プロパティ

コンポーネントは以下のプロパティを受け入れます:

子要素

レンダリングする要素で、キーイベントが監視される対象です。

  • タイプ: ReactNode
  • 必須: いいえ

ショートカット

ショートカットバインディングのオブジェクトで、各キーはキーボードの組み合わせであり、その値はキーの組み合わせが押されたときに呼び出されるコールバックです。

  • タイプ: Object
  • 必須: はい

注意: 各ショートカットの値は、一貫した関数参照であるべきであり、匿名関数ではありません。そうしないと、コンポーネントがアンマウントされたときにコールバックが正しく解除されません。

注意: KeyboardShortcuts コンポーネントは、変更された shortcuts プロパティを反映するようには更新されません。ショートカットを変更する必要がある場合は、ユニークな key プロパティを割り当てることで、別の KeyboardShortcuts 要素をマウントします。

bindGlobal

デフォルトでは、キーの組み合わせが編集可能なフィールドで発生した場合、コールバックは呼び出されません。キーイベントを編集可能なフィールド内も含めてグローバルに観察する必要がある場合は、bindGlobaltrue として渡します。

  • タイプ: Boolean
  • 必須: いいえ

ヒント: すべてのキーボードイベントをグローバルに観察する必要があるが、一部のイベントだけが必要な場合は、KeyboardShortcuts 要素を2つ異なるものとしてレンダリングします。一方には bindGlobal プロパティがあり、もう一方にはありません。

イベント名

デフォルトでは、keydown イベントに応じてコールバックが呼び出されます。これをオーバーライドするには、特定のキーボードイベントの名前を持つ eventName を渡します。

  • タイプ: String
  • 必須: いいえ

参考文献