Перетаскиваемый компонент метки React

внешний интерфейс GitHub React.js

В последних проектах необходимо реализовать компонент метки, а внутренние метки можно перетаскивать и сортировать произвольно. Поискав в интернете, я обнаружил, что практически нет готовых компонентов на основе реакции, которые могли бы хорошо удовлетворить потребности.

Более известным являетсяreact-dnd, однако кажется, что он поддерживает только перемещение элемента в фиксированное положение, мне нужна метка, которую можно перемещать между двумя метками в любой позиции (длина каждой метки не фиксирована, поэтому фиксированной позиции нет. Кроме того , он должен поддерживать несколько строк, поэтому просто списка нескольких перетаскиваемых элементов недостаточно)
Удовлетворение вышеуказанным требованиям являетсяreact-tags, но этот компонент очень негибкий, очень неудобно модифицировать стиль и выполнять какие-то дополнительные операции над меткой, метка должна быть текстовой, а не каким-либо элементом, а "перетаскивание между областями" не поддерживается (см. вторую гифку ниже картинка)


Так что я только что написал один сам:

React Draggable Tags

Его очень легко использовать, он занимает всего несколько строк кода, он очень гибкий, вы можете добавлять, изменять, удалять, сортировать и т. сам не стили не включены).

Фактически, его можно использовать во многих сценариях, требующих функции перетаскивания, а не только вкладок.

Документацию и демонстрационный адрес см.: https://github.com/YGYOOO/react-draggable-tags (кстати, попросите звездочку XD) (Вначале на ее написание ушло полдня, так что есть некоторые ошибки, теперь он должен быть относительно стабильным.Если есть, добро пожаловать в проблему XD)

Обновление: теперь поддерживает мобильные устройства!

Установить

npm install react-draggable-tags --save

Пример:

Перетащите, добавьте, удалите:


Перетащите по регионам:


Во вкладку можно положить что угодно, даже. . . Ставим кучу меток, чтобы добиться многослойности меток:


Вы можете делать с этими тегами все, что хотите, например, сортировать их:


Конечно, возможен и формат списка: