React-dnd: Tambahkan dukungan untuk React 16.3 createRef tipe ref

Dibuat pada 3 Apr 2018  ·  13Komentar  ·  Sumber: react-dnd/react-dnd

Menggunakan connectDragSource dengan elemen yang menggunakan createRef API baru (diperkenalkan di React 16.3.0) alih-alih referensi panggilan balik menyebabkan aplikasi mogok dengan kesalahan: TypeError: previousRef is not a function .

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

enhancement

Komentar yang paling membantu

Masalah yang sama. Haruskah saya kembali menggunakan referensi panggilan balik yang lama, atau apakah ada cara untuk mengatasi ini?

Semua 13 komentar

Inilah yang dihasilkan browser:

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

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

Masalah yang sama. Pertama kali saya akhirnya mendapatkan kesempatan untuk menggunakan referensi baru dan react-dnd menghalangi.

Jangka panjang saya tidak yakin tentang keseluruhan model reaksi-dnd menggunakan findDOMNode dan mengganti referensi. Ketika React memiliki createRef dan withRef baru. API forwardRef baru. Dan sejumlah API mulai menggunakan props render.

Tetapi untuk saat ini seharusnya cukup untuk memeriksa apakah priorRef adalah objek dengan properti current dan mengaturnya alih-alih memanggilnya sebagai fungsi.

Adakah yang punya solusi untuk ini, saat masih menggunakan createRef()?

Saya bisa menggali ini nanti, tetapi kotak pasir yang menunjukkan apa yang Anda cari akan bagus di sini.

Saya menghadapi masalah yang sama juga.
@darthtrevino https://codesandbox.io/s/733onvqwl6 mungkin kotak pasir ini membantu.

Masalah yang sama. Haruskah saya kembali menggunakan referensi panggilan balik yang lama, atau apakah ada cara untuk mengatasi ini?

+1
menggunakan React.createRef() dan ref.current membuat aplikasi mogok.

Kapan ini akan diperbaiki?

Masih belum fix :/

Saya akan meluangkan waktu setelah react-conf untuk melihat ini

Saya dapat menggunakan solusi seperti yang disarankan dengan merangkum ref div di dalam div kosong lainnya.
contoh:

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

👍 ada pembaruan apa pun di @darthtrevino ini. akan senang mendengar pembaruan

@darthtrevino Mengalami masalah yang sama, dapatkah kami memperbaiki ETA?

seharusnya hari ini saya pikir. Beri tahu saya jika ada masalah dengan rilis yang saya potong nanti

Apakah halaman ini membantu?
0 / 5 - 0 peringkat