L'exemple est :
return connectDragSource(connectDropTarget(
<div style={{ ...style, opacity }}>
{text}
</div>
));
Mais en utilisant les autres moyens de se connecter, comme passer une référence (en utilisant innerRef parce que j'utilise styled-components
), si je le fais :
return (
<MyElement
innerRef={instance => connectDragSource(connectDropTarget(findDOMNode(instance)))}
style={{ ...style, opacity }}
>
{text}
</MyElement>
);
Seul l'appel interne fonctionne (dans ce cas, connectDropTarget
, mais si j'échange connectDropTarget
et connectDragSource
, alors seul connectDragSource
fonctionnera).
Cela fonctionne, cependant:
return (
<MyElement
innerRef={instance => {
const domNode = findDOMNode(instance)
connectDragSource(domNode)
connectDropTarget(domNode)
}}
style={{ ...style, opacity }}
>
{text}
</MyElement>
);
Une raison pourquoi ?
Des nouvelles sur ce problème ?
Ce serait formidable si React DnD fonctionne avec Styled-Components (avec innerRef) et pas seulement avec des éléments div natifs.
Je me demande comment cela se passe, car les fonctions du connecteur sont censées renvoyer un ReactElement cloné, et c'est étrange que cela fonctionne bien dans un contexte de rendu. Intéressé d'entendre l'explication si elle devait apparaître. :-)
Ce problème a été automatiquement marqué comme obsolète car il n'a pas eu d'activité récente. Il sera fermé si aucune autre activité ne se produit. Merci pour vos contributions.
Commentaire le plus utile
Des nouvelles sur ce problème ?