Jelaskan bugnya
Saya memutakhirkan dnd dari 7.4.5 ke 9.3.2, tetapi browser membuat kesalahan:
Kesalahan impor yang dicoba: 'DragDropContext' tidak diekspor dari 'react-dnd'. di 9.3.2
Reproduksi
Langkah-langkah untuk mereproduksi perilaku:
Perilaku yang diharapkan
Deskripsi yang jelas dan ringkas tentang apa yang Anda harapkan terjadi.
Tangkapan layar
Jika berlaku, tambahkan tangkapan layar untuk membantu menjelaskan masalah Anda.
Desktop (harap lengkapi informasi berikut):
Konteks tambahan
Tambahkan konteks lain tentang masalah di sini.
Hai, DragDropContext
telah dihapus sejak versi 9 https://github.com/react-dnd/react-dnd/pull/1439
Hai,
DragDropContext
telah dihapus sejak versi 9 #1439
oh terima kasih
Apa jalur migrasi sekarang setelah ini telah dihapus?
Guys, apakah ada panduan migrasi untuk perubahan yang melanggar di versi 9.x?
Guys, apakah ada panduan migrasi untuk perubahan yang melanggar di versi 9.x?
Tidak, Anda dapat mengingatkan penulis untuk memperbarui dokumen.
Inilah yang akhirnya saya lakukan
- import { DragDropContext } from "react-dnd";
- import HTML5Backend from "react-dnd-html5-backend";
-
- export const withDragDropContext = DragDropContext(HTML5Backend);
+ import * as React from "react";
+ import HTML5Backend from "react-dnd-html5-backend";
+ import { DndProvider } from "react-dnd";
+
+ export const withDragDropContext = <TProps extends {}>(Component: React.ComponentClass<TProps> | React.StatelessComponent<TProps>) =>
+ {
+ return (props: TProps) => (
+ <DndProvider backend={HTML5Backend}>
+ <Component {...props} />
+ </DndProvider>
+ );
+ };
Bagi mereka di luar sana googling, ini mungkin membantu:
INI TIDAK BEKERJA
import { createDndContext, DndProvider } from "react-dnd";
import Backend from "react-dnd-html5-backend";
// ...
const DndContext = createDndContext(Backend);
// ...
const MyComponent = () => (
<DndProvider backend={Backend} context={DndContext}>
/* ... */
</DndProvider>
);
Saya ulangi, ITU TIDAK BEKERJA
Alih-alih lakukan ini:
import { createDndContext, DndProvider } from "react-dnd";
import Backend from "react-dnd-html5-backend";
// ...
const DndContext = createDndContext(Backend);
// ...
const myComponent = () => (
const managerRef = useRef(DndContext);
<DndProvider backend={Backend} manager={managerRef.current.dragDropManager}>
/* ... */
</DndProvider>
)
sumber: kode Dnd
bagaimana menyelesaikan
Komentar yang paling membantu
Inilah yang akhirnya saya lakukan