React-dnd: 参照を渡すと、並べ替え可能な例が機能しません

作成日 2017年07月17日  ·  4コメント  ·  ソース: react-dnd/react-dnd

例は次のとおりです。

return connectDragSource(connectDropTarget(
      <div style={{ ...style, opacity }}>
        {text}
      </div>
    ));

ただし、次の場合は、別の接続方法を使用します。たとえば、参照を渡す( styled-componentsを使用しているためinnerRefを使用します)。

return (
      <MyElement 
        innerRef={instance => connectDragSource(connectDropTarget(findDOMNode(instance)))}
        style={{ ...style, opacity }}
      >
        {text}
      </MyElement>
);

内部呼び出しのみが機能します(この場合、 connectDropTargetですが、 connectDropTargetconnectDragSourceを交換すると、 connectDragSourceが機能します)。

ただし、これは機能します。

return (
      <MyElement 
        innerRef={instance => {
          const domNode = findDOMNode(instance)
          connectDragSource(domNode)
          connectDropTarget(domNode)
        }}
        style={{ ...style, opacity }}
      >
        {text}
      </MyElement>
);

理由は何ですか?

wontfix

最も参考になるコメント

この問題に関するニュースはありますか?

全てのコメント4件

この問題に関するニュースはありますか?

React DnDがネイティブのdiv要素だけでなくStyled-Components(innerRefを使用)で機能するのは素晴らしいことです。

コネクタ関数は複製されたReactElementを返すことになっているので、これがどのように起こっているのだろうかと思います。レンダリングコンテキストで正常に機能するのは奇妙です。 何かあったら説明を聞いてみたい。 :-)

この問題は、最近のアクティビティがないため、自動的に古いものとしてマークされています。 それ以上のアクティビティが発生しない場合は閉じられます。 貢献していただきありがとうございます。

このページは役に立ちましたか?
0 / 5 - 0 評価