React-dnd: El ejemplo ordenable no funciona pasando ref

Creado en 17 jul. 2017  ·  4Comentarios  ·  Fuente: react-dnd/react-dnd

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?

wontfix

Comentario más útil

Alguna novedad sobre este asunto ?

Todos 4 comentarios

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.

¿Fue útil esta página
0 / 5 - 0 calificaciones