El ejemplo es:
return connectDragSource(connectDropTarget(
<div style={{ ...style, opacity }}>
{text}
</div>
));
Pero usando las formas alternativas de conectarse, como una referencia de paso (usando innerRef porque estoy usando styled-components
), si lo hago:
return (
<MyElement
innerRef={instance => connectDragSource(connectDropTarget(findDOMNode(instance)))}
style={{ ...style, opacity }}
>
{text}
</MyElement>
);
Solo funciona la llamada interna (en este caso, connectDropTarget
, pero si cambio connectDropTarget
y connectDragSource
, entonces solo connectDragSource
funcionará).
Sin embargo, esto funciona:
return (
<MyElement
innerRef={instance => {
const domNode = findDOMNode(instance)
connectDragSource(domNode)
connectDropTarget(domNode)
}}
style={{ ...style, opacity }}
>
{text}
</MyElement>
);
¿Alguna razón por la que?
Alguna novedad sobre este asunto ?
Sería genial si React DnD funciona con Styled-Components (con innerRef) y no solo con elementos div nativos.
Me pregunto cómo está sucediendo esto, porque se supone que las funciones del conector devuelven un ReactElement clonado, y es extraño que funcione bien en un contexto de renderizado. Interesado en escuchar la explicación si llegara a aparecer alguna. :-)
Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.
Comentario más útil
Alguna novedad sobre este asunto ?