Как реагировать на Beautiful-dnd, как вы можете изменить перетаскиваемые размеры до начала перетаскивания - PullRequest
0 голосов
/ 09 марта 2020

Это код, который я нашел, чтобы получить правильный перетаскиваемый элемент и отредактировать его размеры во время ответчика onBeforeCapture (). Изменение размеров во время этого респондента в соответствии с документацией. Кажется, это работает только при изменении размеров, другие проблемы в том, что я использую метод renderClone, и поэтому перетаскиваемый объект - это просто перетаскивание с огромным смещением, которое не близко к правильному положению мыши. Также dnd рассматривает заполнитель для перетаскивания так, как будто перетаскиваемый объект имеет большой размер. Есть ли способ исправить положение мыши и размеры заполнителя? Я рассмотрел добавление обработчиков mouseDown / mouseUp во внутренний элемент перетаскиваемого объекта, но, похоже, это тоже не работает.

const cardSize = 140;
const draggableAttr = "data-rbd-drag-handle-draggable-id";
const getAttr = (key: string, value: string) => `[${key}=${value}]`; 
const draggableQuery = getAttr(draggableAttr, update.draggableId);
const draggable = document.querySelector(draggableQuery);
draggable.setAttribute("style", `width: ${cardSize}px; height: ${cardSize}px;`);

1 Ответ

0 голосов
/ 13 марта 2020

Я заметил, что onBeforeCapture запускается после onDragEnd (поэтому неправильно изменяет размер перетаскиваемого объекта), поэтому я создал некоторое состояние для запоминания последнего beforeCaptureResult и return, если оно эквивалентно текущему результату.

...