Rで作っていた心理尺度開発ツールをReactベースで再構築するなかでドラッグ&ドロップが必要になったので調査。
React界隈では、「React DnD」と「React Beautiful DnD」のどちらかが主流のようだ。
今回はこのうち、設定の自由度が比較的高そうな「React DnD」を使うこととした。
ただし、React DnDは使い方がBeautifulのそれと比べて難しいと言われている。実際チュートリアルからいきなりチェスボード(駒はひとつだが)の作り方の説明であるが、結構なハードルが高そう。そこでなにかよい解説サイトがないか探していたところ以下に到達。
これでなんとか動作する様に使うことができるようになった。感謝。
ところで、ひととう重要な点でVersion14から変更があったので留意。
Ver14以前: useDrag({ item: { type: BOX }})
Ver14以降: useDrag({ type: 'BOX' })
古い書き方にすると以下のようなエラー出て怒られますので注意。
Invariant Violation spec.type must be defined