Beschreibe den Fehler
Ich habe dnd von 7.4.5 auf 9.3.2 aktualisiert, aber der Browser gibt einen Fehler aus:
Versuchsierter Importfehler: 'DragDropContext' wird nicht aus 'react-dnd' exportiert. in 9.3.2
Reproduktion
Schritte zum Reproduzieren des Verhaltens:
Erwartetes Verhalten
Eine klare und prägnante Beschreibung dessen, was Sie erwartet haben.
Screenshots
Fügen Sie gegebenenfalls Screenshots hinzu, um Ihr Problem zu erklären.
Desktop (bitte füllen Sie die folgenden Informationen aus):
Zusätzlicher Kontext
Fügen Sie hier jeden weiteren Kontext zu dem Problem hinzu.
Hallo, DragDropContext
wurde seit Version 9 entfernt https://github.com/react-dnd/react-dnd/pull/1439
Hallo,
DragDropContext
wurde seit Version 9 #1439 entfernt
oh thx
Was ist der Migrationspfad jetzt, da dies entfernt wurde?
Leute, gibt es einen Migrationsleitfaden für die Breaking Changes in der Version 9.x?
Leute, gibt es einen Migrationsleitfaden für die Breaking Changes in der Version 9.x?
Nein, Sie können den Autor daran erinnern, das Dokument zu aktualisieren.
Das habe ich letztendlich getan
- 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>
+ );
+ };
Für diejenigen da draußen, die googeln, könnte dies helfen:
DAS FUNKTIONIERT NICHT
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>
);
Ich wiederhole, DAS FUNKTIONIERT NICHT
Tun Sie stattdessen Folgendes:
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>
)
Quellen: Dnd-Code
wie löst man
Hilfreichster Kommentar
Das habe ich letztendlich getan