React-dnd: React 16.3createRefタイプの参照のサポートを追加します

作成日 2018年04月03日  ·  13コメント  ·  ソース: react-dnd/react-dnd

コールバック参照の代わりに新しいcreateRefAPI(React 16.3.0で導入)を使用している要素でconnectDragSourceを使用すると、アプリがエラーTypeError: previousRef is not a functionクラッシュします。

https://github.com/facebook/react/pull/12162

enhancement

最も参考になるコメント

同じ問題。 古いコールバック参照の使用に戻す必要がありますか、それともこれを回避する方法はありますか?

全てのコメント13件

これはブラウザが出力するものです:

    return (0, _react.cloneElement)(element, {
        ref: function ref(node) {
            newRef(node);

            if (previousRef) {
                previousRef(node); // << fails with new refs
            }
        }
    });

同じ問題。 初めて私はついに新しい参照を使用する機会を得て、react-dndが邪魔になっています。

長期的には、findDOMNodeを使用してrefを置き換えるreact-dndモデル全体に​​ついてはよくわかりません。 Reactに新しいcreateRefとwithRefがある場合。 新しいforwardRefAPI 。 そして、多くのAPIがレンダープロップを利用し始めています。

ただし、今のところ、previousRefがcurrentプロパティを持つオブジェクトであるかどうかを確認し、関数として呼び出す代わりにそれを設定するだけで十分です。

createRef()を使用しながら、これに対する解決策はありますか?

これについては後で掘り下げることができますが、ここでは、探しているものを示すサンドボックスがあれば便利です。

私も同じ問題に直面しています。
@darthtrevinohttps //codesandbox.io/s/733onvqwl6多分このサンドボックスが役立ちます。

同じ問題。 古いコールバック参照の使用に戻す必要がありますか、それともこれを回避する方法はありますか?

+1
React.createRef()ref.currentすると、アプリがクラッシュしました。

これはいつ修正されますか?

まだ修正されていません:/

これを調べるためにreact-confの後でしばらく時間を作ります

ref divを別の空白のdiv内にカプセル化することで提案されたように、回避策を使用することができました。
例:

 <div>
        <div
          style={{
            position: "relative",
            borderStyle: "dashed",
            width: 300,
            height: 200,
            position: "relative"
          }}
          ref={this.myRef}
        />
      </div>

👍この@darthtrevinoの更新。 更新を聞くのは素晴らしいことです

@darthtrevino同じ問題が発生しましたが、修正でETAを取得できますか?

今日になるはずだと思います。 後でカットしたリリースに問題がある場合はお知らせください

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