ΠΠΏΠΈΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ
Π― ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» dnd Ρ 7.4.5 Π΄ΠΎ 9.3.2, Π½ΠΎ Π±ΡΠ°ΡΠ·Π΅Ρ Π²ΡΠ΄Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ:
ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΈΠΌΠΏΠΎΡΡΠ°: Β«DragDropContextΒ» Π½Π΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΡΡΡ ΠΈΠ· Β«response-dndΒ». Π² 9.3.2
Π Π°Π·ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π¨Π°Π³ΠΈ ΠΏΠΎ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ:
ΠΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π§Π΅ΡΠΊΠΎΠ΅ ΠΈ ΠΊΡΠ°ΡΠΊΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²Ρ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ.
Π‘ΠΊΡΠΈΠ½ΡΠΎΡΡ
ΠΡΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΡΠΊΡΠ°Π½Π°, ΡΡΠΎΠ±Ρ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ Π²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π Π°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ» (Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ):
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠ΄Π° Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΡΠΈΠ²Π΅Ρ, DragDropContext
Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½ Ρ Π²Π΅ΡΡΠΈΠΈ 9 https://github.com/react-dnd/react-dnd/pull/1439
ΠΡΠΈΠ²Π΅Ρ,
DragDropContext
Π±ΡΠ» ΡΠ΄Π°Π»Π΅Π½ Ρ Π²Π΅ΡΡΠΈΠΈ 9 # 1439
ΠΎ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ
ΠΠ°ΠΊΠΎΠΉ ΠΏΡΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΡΠ΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π±ΡΠ»ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΎ?
Π Π΅Π±ΡΡΠ°, Π΅ΡΡΡ Π»ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅ΡΡΠΈΠΈ 9.x?
Π Π΅Π±ΡΡΠ°, Π΅ΡΡΡ Π»ΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π²Π΅ΡΡΠΈΠΈ 9.x?
ΠΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ Π°Π²ΡΠΎΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ.
ΠΡΠΎ ΡΠΎ, ΡΠ΅ΠΌ Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»
- 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>
+ );
+ };
ΠΠ»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ ΠΈΡΠ΅Ρ Π² Google, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ:
ΠΠ’Π ΠΠ Π ΠΠΠΠ’ΠΠΠ’
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>
);
ΠΠΎΠ²ΡΠΎΡΡΡ, ΠΠ’Π ΠΠ Π ΠΠΠΠ’ΠΠΠ’
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ ΡΡΠΎ:
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>
)
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ: Dnd code
ΠΊΠ°ΠΊ ΡΠ΅ΡΠΈΡΡ
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΎ ΡΠΎ, ΡΠ΅ΠΌ Ρ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»