المثال هو:
return connectDragSource(connectDropTarget(
<div style={{ ...style, opacity }}>
{text}
</div>
));
لكن باستخدام الطرق البديلة للاتصال ، مثل مرجع عابر (باستخدام innerRef لأنني أستخدم styled-components
) ، إذا قمت بما يلي:
return (
<MyElement
innerRef={instance => connectDragSource(connectDropTarget(findDOMNode(instance)))}
style={{ ...style, opacity }}
>
{text}
</MyElement>
);
تعمل المكالمة الداخلية فقط (في هذه الحالة ، connectDropTarget
، لكن إذا قمت بتبديل connectDropTarget
و connectDragSource
، فعندئذٍ فقط connectDragSource
ستعمل).
هذا يعمل ، على الرغم من:
return (
<MyElement
innerRef={instance => {
const domNode = findDOMNode(instance)
connectDragSource(domNode)
connectDropTarget(domNode)
}}
style={{ ...style, opacity }}
>
{text}
</MyElement>
);
اي سبب لماذا؟
أي أخبار بشأن هذه المسألة ؟
سيكون رائعًا إذا كان React DnD يعمل مع Styled-Components (مع innerRef) وليس فقط مع عناصر div الأصلية.
أتساءل كيف يحدث هذا ، لأنه من المفترض أن تقوم وظائف الموصل بإرجاع ReactElement المستنسخة ، ومن الغريب أنها تعمل بشكل جيد في سياق العرض. مهتم بسماع التفسير إذا حدث ظهور. :-)
تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه إذا لم يحدث أي نشاط آخر. شكرا لمساهماتكم.
التعليق الأكثر فائدة
أي أخبار بشأن هذه المسألة ؟