React-dnd: DragDropContext kann in v9.3.2 nicht importiert werden

Erstellt am 24. Juli 2019  ·  8Kommentare  ·  Quelle: react-dnd/react-dnd

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

DÄMON

Schritte zum Reproduzieren des Verhaltens:

  1. Gehe zu '...'
  2. Klicke auf '....'
  3. Scrollen Sie nach unten zu '....'
  4. Siehe Fehler

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.
image

Desktop (bitte füllen Sie die folgenden Informationen aus):

  • Betriebssystem: [zB iOS]
  • Browser [Chrome letzte Version]
  • Ausführung [zB 22]

Zusätzlicher Kontext
Fügen Sie hier jeden weiteren Kontext zu dem Problem hinzu.

Hilfreichster Kommentar

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>
+     );
+ };

Alle 8 Kommentare

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen