Jelaskan bugnya
Saya memiliki target drop terhubung yang dihapus dari DOM, setelah ada sesuatu yang dijatuhkan ke sana.
Sekarang sejak meningkatkan ke v7.1.0
, saya mendapatkan
Uncaught TypeError: Cannot read property '0' of undefined
dalam panggilan monitor.isOver()
di dalam fungsi collect
.
Entah bagaimana, ia melihat bahwa fungsi kumpulkan masih dipanggil sekali lagi, setelah target penurunan telah dihapus ( targetId
tidak ditentukan).
Menarik
6.0.0
menyelesaikan masalah.setTimeout
singkat di sekitar panggilan balik saya yang menghapus target penurunan, menyelesaikan masalah.Tahu apa yang bisa menyebabkan itu?
Untuk Mereproduksi
Langkah-langkah untuk mereproduksi perilaku:
monitor.isOver()
di collect
drop(...)
yang menghapus target jatuhPerilaku yang diharapkan
Tidak ada masalah waktu dengan isOver
dan target drop dapat segera dihapus.
Tangkapan layar
Desktop (harap lengkapi informasi berikut):
7.1.0
Masalah yang sama
Saya mencoba mengembalikan perubahan ini https://github.com/react-dnd/react-dnd/commit/0feb250b7ee90483e31f3bc159ebf946980d53a7#diff -ac418ba19283aec1fb0b70e6570c5613 dan diselesaikan .. .
Masalah yang sama.
Menunggu perbaikan.
Digulung kembali ke v7.0.2
Dikonfirmasi bahwa kami menerima masalah yang sama - Mengembalikan ke 7.0.2 memperbaiki masalah
Ini disebabkan karena perubahan pada 0feb250b7ee90483e31f3bc159ebf946980d53a7 memungkinkan ID target menjadi undefined
tetapi tidak ada yang memeriksa PR dengan perubahan itu untuk isOverTarget
Saat ini prototipenya adalah:
public isOverTarget(targetId: string, options = { shallow: false })
tidak seperti fungsi lain yang berubah dalam pr yang memindahkan targetId
/ sourceId
ke
targetId: string | undefined
sourceId: string | undefined
dan cek:
if (!targetId) {
return false;
}
Perbaikan untuk masalah ini adalah memeriksa targetId
menjadi undefined
sini: https://github.com/mattkrick/react-dnd/blob/aafcf7d67f8b3a2035b561e97b7874e1064447e4/packages/dnd-core/src /DragDropMonitorImpl.ts#L128
Ini harus diperbaiki oleh PR cfrank dalam rilis hari ini
Luar biasa, teman-teman, terima kasih @cfrank
Komentar yang paling membantu
Ini harus diperbaiki oleh PR cfrank dalam rilis hari ini