プロパティ

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

appendToOwnerDocument: boolean

クローンされた要素を ownerDocument のボディに追加するかどうか。デフォルトでは、IDから取得された要素は要素のラッパーに追加されます。

  • 必須: いいえ
  • デフォルト: false

elementId: string

ドラッグ時にクローンする要素のHTML ID。

  • 必須: はい

onDragEnd: ( event: DragEvent ) => void

ドラッグが終了したときに呼び出される関数。このコールバックは、最初のパラメータとして event オブジェクトを dragend イベントから受け取ります。

  • 必須: いいえ
  • デフォルト: noop

onDragOver: ( event: DragEvent ) => void

ドラッグされている要素が有効なドロップターゲットの上にドラッグされたときに呼び出される関数。このコールバックは、最初のパラメータとして event オブジェクトを dragover イベントから受け取ります。

  • 必須: いいえ
  • デフォルト: noop

onDragStart: ( event: DragEvent ) => void

ドラッグが開始されたときに呼び出される関数。このコールバックは、最初のパラメータとして event オブジェクトを dragstart イベントから受け取ります。

  • 必須: いいえ
  • デフォルト: noop

transferData: unknown

ドラッグアンドドロップイベントに添付された任意のデータオブジェクト。

  • 必須: はい

使用法

  1. import { Draggable, Panel, PanelBody } from '@wordpress/components';
  2. import { Icon, more } from '@wordpress/icons';
  3. const MyDraggable = () => (
  4. <div id="draggable-panel">
  5. <Panel header="Draggable panel">
  6. <PanelBody>
  7. <Draggable elementId="draggable-panel" transferData={ {} }>
  8. { ( { onDraggableStart, onDraggableEnd } ) => (
  9. <div
  10. className="example-drag-handle"
  11. draggable
  12. onDragStart={ onDraggableStart }
  13. onDragEnd={ onDraggableEnd }
  14. >
  15. <Icon icon={ more } />
  16. </div>
  17. ) }
  18. </Draggable>
  19. </PanelBody>
  20. </Panel>
  21. </div>
  22. );

独自の dragstart / dragend イベントハンドラーを呼び出したい場合は、それらを Draggable に渡すことができ、独自の後に呼び出すことができます:

  1. import { Draggable, Panel, PanelBody } from '@wordpress/components';
  2. import { Icon, more } from '@wordpress/icons';
  3. const MyDraggable = ( { onDragStart, onDragEnd } ) => (
  4. <div id="draggable-panel">
  5. <Panel header="Draggable panel">
  6. <PanelBody>
  7. <Draggable
  8. elementId="draggable-panel"
  9. transferData={ {} }
  10. onDragStart={ onDragStart }
  11. onDragEnd={ onDragEnd }
  12. >
  13. { ( { onDraggableStart, onDraggableEnd } ) => (
  14. <div
  15. className="example-drag-handle"
  16. draggable
  17. onDragStart={ onDraggableStart }
  18. onDragEnd={ onDraggableEnd }
  19. >
  20. <Icon icon={ more } />
  21. </div>
  22. ) }
  23. </Draggable>
  24. </PanelBody>
  25. </Panel>
  26. </div>
  27. );