рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдореИрдВрдиреЗ рдбреАрдПрдирдбреА рдХреЛ 7.4.5 рд╕реЗ 9.3.2 рддрдХ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмреНрд░рд╛рдЙрдЬрд░ рдиреЗ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреА:
рдЖрдпрд╛рдд рддреНрд░реБрдЯрд┐ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛: 'DragDropContext' рдХреЛ 'react-dnd' рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред 9.3.2 . рдореЗрдВ
рдкреНрд░рдЬрдирди
рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо:
рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░
рдЖрдк рдЬреЛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рдереЗ рдЙрд╕рдХрд╛ рдПрдХ рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдгред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдпрджрд┐ рд▓рд╛рдЧреВ рд╣реЛ, рддреЛ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд╕рдордЭрд╛рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬреЛрдбрд╝реЗрдВред
рдбреЗрд╕реНрдХрдЯреЙрдк (рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ):
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн
рдпрд╣рд╛рдВ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрджрд░реНрдн рдЬреЛрдбрд╝реЗрдВред
рдирдорд╕реНрддреЗ, DragDropContext
рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 9 рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ https://github.com/react-dnd/react-dnd/pull/1439
рдирдорд╕реНрддреЗ,
DragDropContext
рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 9 #1439 . рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рдУрд╣ thx
рдЕрдм рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкрде рдХреНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?
рджреЛрд╕реНрддреЛрдВ, рдХреНрдпрд╛ 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>
+ );
+ };
рдЧреБрдЧрд▓реА рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛
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>
)
рд╕реНрд░реЛрдд: рдбреАрдПрдирдбреА рдХреЛрдб
рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдпрд╣реА рдХрд┐рдпрд╛ рд╣реИ