صف الخلل
لدي هدف إسقاط متصل تمت إزالته من 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 وتم حلها ...
المشكلة نفسها.
في انتظار الإصلاح.
التراجع إلى الإصدار 7.0.2
تم التأكيد على أننا نتلقى نفس المشكلة - يؤدي الرجوع إلى 7.0.2 إلى إصلاح المشكلة
يحدث هذا لأن التغيير في 0feb250b7ee90483e31f3bc159ebf946980d53a7 يسمح لمعرف الهدف أن يكون undefined
لكن لم يتحقق أحد من PR بهذا التغيير لـ isOverTarget
النموذج الأولي حاليًا هو:
public isOverTarget(targetId: string, options = { shallow: false })
على عكس الوظائف الأخرى التي تغيرت في تلك العلاقات العامة والتي تنقل 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
يجب إصلاح ذلك من خلال العلاقات العامة لـ cfrank في إصدار اليوم
مذهل يا رفاق ، شكرًا cfrank
التعليق الأكثر فائدة
يجب إصلاح ذلك من خلال العلاقات العامة لـ cfrank في إصدار اليوم