React-dnd: canDrop λ©”μ†Œλ“œμ—μ„œ 파일 λ“œλž˜κ·Έμ— λŒ€ν•œ 정보λ₯Ό μ–»μœΌλ €λ©΄ μ–΄λ–»κ²Œ ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

에 λ§Œλ“  2016λ…„ 11μ›” 22일  Β·  27μ½”λ©˜νŠΈ  Β·  좜처: react-dnd/react-dnd

ν—ˆμš©λœ 파일 ν™•μž₯자λ₯Ό μ œν•œν•˜κ³  μ‚¬μš©μžκ°€ λ“œλž˜κ·Έν•˜λŠ” νŒŒμΌμ„ μ•Œμ•„μ•Ό ν•˜μ§€λ§Œ μ½˜μ†”μ—μ„œ κ²½κ³ κ°€ λ°œμƒν•©λ‹ˆλ‹€. NativeDragSources.js:61 Browser doesn't allow reading "files" until the drop event. λ“œλ‘­ λŒ€μƒμ— 놓기 전에 파일 ν™•μž₯λͺ…을 ν™•μΈν•˜κ±°λ‚˜ 파일 수λ₯Ό λ“œλž˜κ·Έν•˜λŠ” κ°€μž₯ 쒋은 방법은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?

pinned

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

event.dataTransfer 개체(예: types )λ₯Ό 톡해 νŒŒμΌμ— λŒ€ν•œ 일뢀 정보λ₯Ό λ…ΈμΆœν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” 그것이 λͺ¨λ“  μ‚¬μš© 사둀λ₯Ό λ§Œμ‘±μ‹œν‚¬ μˆ˜λŠ” μ—†μ§€λ§Œ 적어도 μΌλΆ€λŠ” 도움이 될 κ²ƒμ΄λΌλŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.

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

μ†ŒμŠ€μ—μ„œ 끌기λ₯Ό ν—ˆμš©ν•˜μ§€ μ•Šκ±°λ‚˜ μœ ν˜•μ— 따라 λŒ€μƒμ—μ„œ ν—ˆμš©λ˜μ§€ μ•ŠμŒμ„ ν‘œμ‹œν•˜λ„λ‘ ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ?

  1. λ“œλž˜κ·Έλ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμœΌλ €λ©΄ Source의 canDrag false λ₯Ό λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  2. λ“œλ‘­μ„ ν—ˆμš©ν•˜μ§€ μ•ŠμœΌλ €λ©΄ Targetμ—μ„œ types λ₯Ό μ‚¬μš©ν•˜μ—¬ μ œμ–΄ν•΄μ•Ό ν•©λ‹ˆλ‹€.

@theTechie μ•„λ‹ˆμš”, ν˜„μž¬ 끌고 μžˆλŠ” 파일 ν™•μž₯자λ₯Ό μ½λŠ” 방법을 μ°Ύκ³  μžˆμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  μ†ŒμŠ€ 및 λŒ€μƒ λ©”μ„œλ“œλŠ” 두 번째 인수둜 monitor λ₯Ό λ°›μŠ΅λ‹ˆλ‹€. ( canDrop 포함)

monitor.getItem() λ₯Ό μ‚¬μš©ν•˜μ—¬ ν˜„μž¬ λ“œλž˜κ·Έλœ ν•­λͺ©μ„ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ°Έμ‘°:

canDrop(props, monitor): Optional. Use it to specify whether the drop target is able to accept the item. If you want to always allow it, just omit this method. Specifying it is handy if you'd like to disable dropping based on some predicate over props or monitor.getItem(). Note: You may not call monitor.canDrop() inside this method.
monitor λ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

νŒŒμΌμ—λŠ” μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

μ΄μƒν•˜λ‹€.
파일 μ‹œμŠ€ν…œμ—μ„œ λŒ€μƒμœΌλ‘œ νŒŒμΌμ„ λ“œλž˜κ·Έ μ•€ λ“œλ‘­ν•˜κ³  μžˆλ‹€κ³  μƒκ°ν•˜μ‹­λ‹ˆκΉŒ?

λ‚˜λŠ” λΉ„μŠ·ν•œ μΌμ„ν–ˆκ³  그것이 λ‚˜λ₯Ό μœ„ν•΄ μΌν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μ½”λ“œλ₯Ό κ³΅μœ ν•  수 μžˆλ‹€λ©΄ 무엇이 잘λͺ»λ˜μ—ˆλŠ”지 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.

canDrop λ©”μ„œλ“œμ—μ„œ 파일 ν™•μž₯자λ₯Ό μ½λŠ” 방법을 보여 μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

μœ„μ—μ„œ 이미 μ–ΈκΈ‰ν–ˆλ“―μ΄ canDrop monitor.getItem().files λŠ” κΈ°λ³Έ File 개체의 배열을 μ œκ³΅ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ‚΄ μ£Όλ¨Ή λŒ“κΈ€μ„ μ½μœΌμ‹­μ‹œμ˜€. canDropμ—μ„œ νŒŒμΌμ„ 읽을 λ•Œ λ‚΄κ°€ μ–ΈκΈ‰ν•œ 것과 같은 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. canDropμ—μ„œ νŒŒμΌμ„ μ½λŠ” μž‘μ—… μ˜ˆμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ κ·Έλƒ₯ μ„€λͺ…μ„œλ₯Ό μ°Έμ‘°ν•©λ‹ˆκΉŒ? 였λ₯˜λŠ” λ“œλ‘­ μ΄λ²€νŠΈκΉŒμ§€ νŒŒμΌμ„ 읽을 수 μ—†λ‹€κ³  λ§ν•©λ‹ˆλ‹€. NativeDragSources.js:61 λΈŒλΌμš°μ €λŠ” λ“œλ‘­ μ΄λ²€νŠΈκΉŒμ§€ "파일" 읽기λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

두 가지 λ‹€λ₯Έ 버전을 μ‚¬μš© 쀑일 수 있으며 이 μ œν•œ 사항은 λ‚˜μ€‘μ— μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 2.1.4λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μ•Œκ² μŠ΅λ‹ˆλ‹€. μ΅œμ‹  버전을 ν…ŒμŠ€νŠΈν•˜κ³  μž‘λ™ν•˜λŠ”μ§€ μ•Œλ € λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

canDrop 에 μžˆλŠ” νŒŒμΌμ„ MIME μœ ν˜•μœΌλ‘œ ν•„ν„°λ§ν•˜λ €κ³  ν•  λ•Œλ„ 이 λ¬Έμ œκ°€ λ°œμƒν•©λ‹ˆλ‹€. monitor.getItem().files λ₯Ό ν˜ΈμΆœν•˜μžλ§ˆμž μœ„μ˜ κ²½κ³ κ°€ λ°œμƒν•©λ‹ˆλ‹€(Chrome 56.0.2924.87, react-dnd 2.2.4, react-dnd-html5-backend 2.2.4).

MDN 에 λ”°λ₯΄λ©΄ 적어도 event.dataTransfer 속성을 μ‚¬μš©ν•˜μ—¬ μˆ˜ν–‰ν•  수 μžˆμ§€λ§Œ λ‚΄κ°€ λ³Ό 수 μžˆλŠ” ν•œ react-dndλŠ” ν•΄λ‹Ή κ°œμ²΄λ‚˜ ν•΄λ‹Ή 정보λ₯Ό 어디에도 λ…ΈμΆœν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@theTechie

두 가지 λ‹€λ₯Έ 버전을 μ‚¬μš© 쀑일 수 있으며 이 μ œν•œ 사항은 λ‚˜μ€‘μ— μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 2.1.4λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μ•„λ‹ˆμš”, 같은 버전을 μ‚¬μš©ν•©λ‹ˆλ‹€. λ˜ν•œ κ°€λŠ₯ν•œ μ΅œμ‹  버전(2.2.4)으둜 μ—…λ°μ΄νŠΈλ˜κ³  λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

image

canDrop λ©”μ„œλ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

canDrop: function (props, monitor) {      
        let files = monitor.getItem().files;
        console.log('Files: ', files);
        return true;
    }

그것은 λ‹Ήμ‹ μ˜ νŽΈμ—μ„œ μ–΄λ–»κ²Œ μž‘λ™ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? μž‘μ—… μ˜ˆκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

μž‘μ—… 예제λ₯Ό 곧 κ³΅μœ ν•˜κ² μŠ΅λ‹ˆλ‹€.
2017λ…„ 3μ›” 6일 μ›”μš”μΌ μ˜€ν›„ 4:12 Andrey Karavaychik [email protected]
썼닀:

@theTechie https://github.com/theTechie

두 가지 λ‹€λ₯Έ 버전을 μ‚¬μš© 쀑일 수 있으며 이 μ œν•œ 사항은
λ‚˜μ€‘μ— μΆ”κ°€λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 2.1.4λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μ•„λ‹ˆμš”, 같은 버전을 μ‚¬μš©ν•©λ‹ˆλ‹€. λ˜ν•œ κ°€λŠ₯ν•œ μ΅œμ‹  λ²„μ „μœΌλ‘œ μ—…λ°μ΄νŠΈλ¨
(2.2.4) λ™μΌν•œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

[이미지: 이미지]
https://cloud.githubusercontent.com/assets/710513/23606619/8acabe7a-0272-11e7-8db1-b1c88870cf92.png

canDrop λ©”μ„œλ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

canDrop: κΈ°λŠ₯(μ†Œν’ˆ, λͺ¨λ‹ˆν„°) {
let 파일 = monitor.getItem().files;
console.log('파일: ', 파일);
trueλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.
}

그것은 λ‹Ήμ‹ μ˜ νŽΈμ—μ„œ μ–΄λ–»κ²Œ μž‘λ™ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? μž‘μ—… μ˜ˆκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

β€”
당신이 μ–ΈκΈ‰λ˜μ—ˆκΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/react-dnd/react-dnd/issues/584#issuecomment-284361793 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AA_31panjV9Uo11jF63f2Pkx4FBKiV6Aks5ri-MtgaJpZM4K5hkG
.

>

λ¬Έμ•ˆ 인사,
κ°€κ°„

@andrewQwer - 정말 μ£„μ†‘ν•©λ‹ˆλ‹€!
λ‚΄κ°€ κ΅¬ν˜„ν•œ 것에 λŒ€ν•œ 잘λͺ»λœ λ©”λͺ¨λ¦¬κ°€ 있고 monitor.getItem().files in canDrop 을 μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚΄κ°€ ν•˜λŠ” 일은 파일 수λ₯Ό ν•œ 번 μœ μ§€ν•˜μ—¬ μ‚­μ œν•  수 μžˆλŠ” 파일 수λ₯Ό μ œν•œν•˜λŠ” κ²ƒλΏμž…λ‹ˆλ‹€. λ–¨μ–΄μ‘Œλ‹€.

μ˜€ν•΄μ˜ μ†Œμ§€κ°€ μžˆμ–΄ μ£„μ†‘ν•©λ‹ˆλ‹€!

μΆ”μ‹ : 이λ₯Ό 달성할 수 μžˆλŠ” 방법을 μ°Ύκ³  μžˆμŠ΅λ‹ˆλ‹€. κ°€λŠ₯ν•˜λ©΄ μ•Œλ € λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 κ²°μ½” κ°€λŠ₯ν•  것이라고 μƒκ°ν•˜μ§€ μ•ŠλŠ”λ‹€. λ“œλž˜κ·Έν•œ ν•­λͺ©μ— λŒ€ν•œ 정보 μ½κΈ°λŠ” λ³΄μ•ˆμ„ μœ„ν•΄ μ˜λ„μ μœΌλ‘œ μ œν•œλ˜μ–΄ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€.

http://stackoverflow.com/questions/25016442/how-to-distinguish-if-a-file-or-folder-is-being-dragged-prior-to-it-being-droppe

event.dataTransfer 개체(예: types )λ₯Ό 톡해 νŒŒμΌμ— λŒ€ν•œ 일뢀 정보λ₯Ό λ…ΈμΆœν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚˜λŠ” 그것이 λͺ¨λ“  μ‚¬μš© 사둀λ₯Ό λ§Œμ‘±μ‹œν‚¬ μˆ˜λŠ” μ—†μ§€λ§Œ 적어도 μΌλΆ€λŠ” 도움이 될 κ²ƒμ΄λΌλŠ” 것을 μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.

이것은 HTML5 λ°±μ—”λ“œμ— μΆ”κ°€ν•΄μ•Ό ν•  사항일 수 μžˆμ§€λ§Œ 파일/폴더가 μ‚­μ œλ˜κΈ° 전에 파일이 ν—ˆμš©λ˜λŠ” MIME μœ ν˜• 집합에 λ§žλŠ”μ§€ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. 특히 react-dropzone은 이 예제 μ—μ„œ λ³Ό 수 μžˆλŠ” κ²ƒμ²˜λŸΌ dropzone μœ„μ— ν•­λͺ©μ„ 놓을 λ•Œ 이 μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

아직 이 λ¬Έμ œμ— λŒ€ν•œ 해결책이 μžˆμŠ΅λ‹ˆκΉŒ?

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 이상 ν™œλ™μ΄ μ—†μœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

μ˜€λž˜λ˜μ§€ μ•Šμ€

λ˜ν•œ react-dropzoneκ³Ό 같은 이미지, λΉ„λ””μ˜€μ™€ 같은 νŠΉμ • νŒŒμΌμ„ μ‚­μ œν•  수 μžˆλŠ” 방법을 μ°Ύκ³  μžˆμŠ΅λ‹ˆλ‹€. λˆ„κ΅¬λ“ μ§€ 해결책이 μžˆμŠ΅λ‹ˆκΉŒ?

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 이상 ν™œλ™μ΄ μ—†μœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

λ‚˜λ„ λ¬Έμ œκ°€μžˆλ‹€. "NativeDragSource.ts"에 μƒλ‹Ήνžˆ ν•˜λ“œμ½”λ”©λœ 것 κ°™μŠ΅λ‹ˆλ‹€.

DragSourceλ₯Ό μƒμ„±ν•˜μ§€λ§Œ 값에 μ•‘μ„ΈμŠ€ν•˜κΈ° μœ„ν•΄ λΈŒλΌμš°μ €μ—μ„œ ν—ˆμš©ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” μ½˜μ†” 경고만 μΆ”κ°€ν•©λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λΈŒλΌμš°μ €λŠ” 이λ₯Ό ν—ˆμš©ν•©λ‹ˆλ‹€. 보호 λͺ¨λ“œμΌ 뿐이며 νŒŒμΌμ„ λ³€κ²½ν•˜κ±°λ‚˜ DATA에 μ•‘μ„ΈμŠ€ν•˜λŠ” 것을 ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(파일의 속성이 μžˆλŠ” ν•­λͺ©μ€ μ—΄κ±°ν•  수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. (DropZone이 ν•˜λŠ” κ²ƒμ²˜λŸΌ) .

λ­”κ°€λ₯Ό μ‹œλ„ν•˜κ³  λ‹Ήμ‹ μ—κ²Œ λŒμ•„μ˜¬ κ²ƒμž…λ‹ˆλ‹€

@LeopoldLerch @darthtrevino μ—¬μ „νžˆ files λͺ©λ‘μ— μ•‘μ„ΈμŠ€ν•  수 μ—†μŠ΅λ‹ˆλ‹€. ν˜Έλ²„μ—μ„œ 파일의 MIME μœ ν˜•μ„ ν™•μΈν•˜κ³  파일의 μœ νš¨ν•œ ν˜•μ‹μΈμ§€μ— 따라 ν…Œλ‘λ¦¬ 색상을 λ³€κ²½ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. useDrop 후크에 canDrop λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 그리고 λ‚΄κ°€ λ“œλ‘­ν–ˆμ„ λ•Œ 파일 배열을 λ°˜ν™˜ν•©λ‹ˆλ‹€. λ“œλ‘­ μ˜μ—­ μœ„λ‘œ 마우슀λ₯Ό κ°€μ Έ κ°€λ©΄ 빈 배열이 μžˆμŠ΅λ‹ˆλ‹€.

λ¬Έμ œλŠ” λΈŒλΌμš°μ €κ°€ μ „λ‹¬ν•˜λŠ” μ΄λ²€νŠΈλŠ” μžˆλŠ” κ·ΈλŒ€λ‘œμ΄λ©° λ³€κ²½ν•  수 μ—†λ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λΈŒλΌμš°μ €λŠ” dragstartμ—μ„œλ§Œ 데이터에 λŒ€ν•œ μ•‘μ„ΈμŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. κ·Έ ν›„μ—λŠ” λͺ¨λ“  후속 μ΄λ²€νŠΈκ°€ 보호 λͺ¨λ“œμ— μžˆμœΌλ―€λ‘œ 데이터에 μ•‘μ„ΈμŠ€ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

useDrop의 onHover λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ λΈŒλΌμš°μ €κ°€ "dragenter"μ—μ„œ μ•‘μ„ΈμŠ€ν•˜λŠ” 것을 ν—ˆμš©ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— 빈 메타데이터λ₯Ό μ–»κ²Œ λ©λ‹ˆλ‹€. dragstart(λ˜λŠ” μˆ˜μ§‘ κΈ°λŠ₯)에 개체λ₯Ό μ €μž₯ν•˜λ”λΌλ„ λΈŒλΌμš°μ €λŠ” λ°°κ²½μ—μ„œ 속성을 μ§€μšΈ κ²ƒμž…λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ 당신은 개체의 볡사본이 μ•„λ‹ˆλΌ κ°œμ²΄μ— λŒ€ν•œ μ°Έμ‘°λ₯Ό 가지고 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

이 문제λ₯Ό ν•΄κ²°ν•˜λŠ” μœ μΌν•œ 방법은 "μˆ˜μ§‘" κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ ν•­λͺ©μ˜ "ν•­λͺ©" λ˜λŠ” "파일"에 μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€(μ‚¬μš©ν•˜λŠ” λΈŒλΌμš°μ €μ— 따라 IE11은 ondrop 전에 μ•‘μ„ΈμŠ€λ₯Ό ν—ˆμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€).

κ·ΈλŸ¬λ‚˜ λͺ¨λ“  것을 슀슀둜 ν•΄μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μœ νš¨μ„± 검사 및 κΈ°μ–΅. useRef. 예λ₯Ό λ“€μ–΄

collect: monitor => {
            const item: DataTransfer = monitor.getItem();
            const isOver = monitor.isOver();
            let _canDrop: VerificationResult = null;
            if (item) {
                if (item.items) {
                    if (item.items.length > 0) {
                        draggedFilesValid.current = allFilesAccepted(
                            fromList<DataTransferItem>(item.items),
                            accept,
                            multiple,
                            maxSize,
                            minSize
                        )
                            ? VerificationResult.Valid
                            : VerificationResult.Invalid;
                    }
                }
            } else {
                draggedFilesValid.current = null;
            }

            if (isOver && item && item.files) {
                _canDrop = VerificationResult.Unknown;
                if (draggedFilesValid.current != null) {
                    _canDrop = disabled
                        ? VerificationResult.Invalid
                        : draggedFilesValid.current;
                }
            }

            return {
                isDragActive: item != null,
                canDrop: _canDrop
            };
        }

@LeopoldLerch
μ„€λͺ… κ°μ‚¬ν•©λ‹ˆλ‹€! λ‚˜λŠ” 이런 μ’…λ₯˜μ˜ ν•΄κ²° 방법을 μ‹œλ„ ν•  κ²ƒμž…λ‹ˆλ‹€

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