Опишите ошибку
У меня есть подключенная цель перетаскивания, которая удаляется из DOM, как только на нее что-то сбрасывается.
Теперь, после обновления до v7.1.0
, я получаю
Uncaught TypeError: Cannot read property '0' of undefined
в вызове monitor.isOver()
внутри функции collect
.
Каким-то образом он видит, что функция сбора все еще вызывается еще раз после удаления цели перетаскивания ( targetId
не определено).
Интересно
6.0.0
решил проблему.setTimeout
вокруг моего обратного вызова, удаляющей цель перетаскивания.Есть идеи, что могло вызвать это?
Воспроизводить
Шаги по воспроизведению поведения:
monitor.isOver()
в collect
drop(...)
которое удаляет цель перетаскиванияОжидаемое поведение
Нет проблем с синхронизацией с isOver
и цели сброса могут быть немедленно удалены.
Скриншоты
Рабочий стол (заполните следующую информацию):
7.1.0
Та же проблема
Я попытался отменить это изменение https://github.com/react-dnd/react-dnd/commit/0feb250b7ee90483e31f3bc159ebf946980d53a7#diff -ac418ba19283aec1fb0b70e6570c5613 и решил ...
Та же проблема.
Жду исправления.
Откатился на v7.0.2
Подтверждено, что мы получаем ту же проблему - возврат к версии 7.0.2 устраняет проблему
Это вызвано тем, что изменение в 0feb250b7ee90483e31f3bc159ebf946980d53a7 позволяет идентификатору цели быть undefined
но никто не проверял PR с этим изменением для isOverTarget
На данный момент это прототип:
public isOverTarget(targetId: string, options = { shallow: false })
в отличие от других функций, которые изменились в этой pr, которые перемещают targetId
/ sourceId
в
targetId: string | undefined
sourceId: string | undefined
и проверьте:
if (!targetId) {
return false;
}
Чтобы исправить эту проблему, проверьте, является ли targetId
undefined
здесь: https://github.com/mattkrick/react-dnd/blob/aafcf7d67f8b3a2035b561e97b7874e1064447e4/packages/dnd-core/src /DragDropMonitorImpl.ts#L128
Это должно быть исправлено PR cfrank в сегодняшнем выпуске.
Отлично , ребята, спасибо
Самый полезный комментарий
Это должно быть исправлено PR cfrank в сегодняшнем выпуске.