Beschreibe den Fehler
Ich habe ein verbundenes Ablageziel, das aus dem DOM entfernt wird, sobald etwas darauf abgelegt wird.
Seit dem Upgrade auf v7.1.0
bekomme ich
Uncaught TypeError: Cannot read property '0' of undefined
im monitor.isOver()
Aufruf innerhalb der collect
Funktion.
Irgendwie sieht es, dass die Collect-Funktion noch einmal aufgerufen wird, nachdem das Drop-Target entfernt wurde ( targetId
ist undefiniert).
Interessant
6.0.0
das Problem behoben.setTimeout
Wrappers um meinen Rückruf, der das Drop-Ziel entfernte, behoben.Irgendeine Idee, was das verursachen könnte?
Fortpflanzen
Schritte zum Reproduzieren des Verhaltens:
monitor.isOver()
in collect
drop(...)
, die das Drop-Ziel entferntErwartetes Verhalten
Es gibt kein Timing-Problem mit isOver
und Drop-Ziele können sofort entfernt werden.
Screenshots
Desktop (bitte füllen Sie die folgenden Informationen aus):
7.1.0
Gleicher Fehler
Ich habe versucht, diese Änderung rückgängig zu machen https://github.com/react-dnd/react-dnd/commit/0feb250b7ee90483e31f3bc159ebf946980d53a7#diff -ac418ba19283aec1fb0b70e6570c5613 und gelöst.. .
Gleicher Fehler.
Warten auf Abhilfe.
Zurückgerollt auf v7.0.2
Bestätigt, dass wir das gleiche Problem erhalten – Zurücksetzen auf 7.0.2 behebt das Problem
Dies wird verursacht, weil die Änderung bei 0feb250b7ee90483e31f3bc159ebf946980d53a7 zulässt, dass die Ziel-ID undefined
lautet, aber niemand die PR mit dieser Änderung auf isOverTarget
überprüft hat
Derzeit ist der Prototyp:
public isOverTarget(targetId: string, options = { shallow: false })
im Gegensatz zu den anderen Funktionen, die sich in diesem pr geändert haben, die targetId
/ sourceId
nach verschieben
targetId: string | undefined
sourceId: string | undefined
und prüfe:
if (!targetId) {
return false;
}
Eine Lösung für dieses Problem besteht darin, hier zu prüfen, ob targetId
undefined
ist: https://github.com/mattkrick/react-dnd/blob/aafcf7d67f8b3a2035b561e97b7874e1064447e4/packages/dnd-core/src /DragDropMonitorImpl.ts#L128
Dies sollte von cfranks PR in einer heutigen Veröffentlichung behoben werden
Erstaunlich, Leute, danke @cfrank
Hilfreichster Kommentar
Dies sollte von cfranks PR in einer heutigen Veröffentlichung behoben werden