React-dnd: v9.3.2μ—μ„œ DragDropContextλ₯Ό κ°€μ Έμ˜¬ 수 μ—†μŒ

에 λ§Œλ“  2019λ…„ 07μ›” 24일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: react-dnd/react-dnd

버그 μ„€λͺ…
dndλ₯Ό 7.4.5μ—μ„œ 9.3.2둜 μ—…κ·Έλ ˆμ΄λ“œν–ˆμ§€λ§Œ λΈŒλΌμš°μ €μ—μ„œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

κ°€μ Έμ˜€κΈ° μ‹œλ„ 였λ₯˜: 'DragDropContext'λ₯Ό 'react-dnd'μ—μ„œ 내보내지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 9.3.2μ—μ„œ

생식

μ•…λ§ˆ

λ™μž‘μ„ μž¬ν˜„ν•˜λŠ” 단계:

  1. 이동 '...'
  2. 클릭 '....'
  3. μ•„λž˜λ‘œ μŠ€ν¬λ‘€ν•˜μ—¬ '....'
  4. 였λ₯˜ 보기

μ˜ˆμƒλ˜λŠ” 행동
μ˜ˆμƒν–ˆλ˜ 일에 λŒ€ν•œ λͺ…ν™•ν•˜κ³  κ°„κ²°ν•œ μ„€λͺ….

μŠ€ν¬λ¦°μƒ·
ν•΄λ‹Ήν•˜λŠ” 경우 문제λ₯Ό μ„€λͺ…ν•˜λŠ” 데 도움이 λ˜λŠ” μŠ€ν¬λ¦°μƒ·μ„ μΆ”κ°€ν•˜μ„Έμš”.
image

λ°μŠ€ν¬νƒ‘(λ‹€μŒ 정보λ₯Ό μž‘μ„±ν•˜μ‹­μ‹œμ˜€):

  • OS: [예: iOS]
  • λΈŒλΌμš°μ € [ 크둬 λ§ˆμ§€λ§‰ 버전 ]
  • 버전 [예: 22]

μΆ”κ°€ μ»¨ν…μŠ€νŠΈ
여기에 λ¬Έμ œμ— λŒ€ν•œ λ‹€λ₯Έ μ»¨ν…μŠ€νŠΈλ₯Ό μΆ”κ°€ν•˜μ‹­μ‹œμ˜€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이것이 λ‚΄κ°€ ν•œ 일이닀.

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

λͺ¨λ“  8 λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš”, 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>
)

좜처: Dnd μ½”λ“œ

ν•΄κ²° 방법

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰