Я создаю компонент, который позволяет перетаскивать локальные файлы на div. Затем выводится информация о сброшенном файле.
Моя проблема в том, что я не знаю, как правильно прикрепить прослушиватели событий drop
и dragover
при создании моего компонента.
Компонент My App - это то место, где находится вся моя логика (обработчик для удаления и перетаскивания), и я создал отдельный компонент, в который будут сбрасываться файлы - компонент dropZone.
Я попытался поместить прослушиватель событий в тег dropZone в моем компоненте приложения с componentDidMount
, где, если мой компонент dropZone был визуализирован, поместите на него прослушиватель событий:
componentDidMount(){
const dropZone = document.getElementById('dropZone');
dropZone.addEventListener('dragover', this.allowDrop.bind(this))
dropZone.addEventListener('drop', this.dropHandler.bind(this))
}
это не сработало
Затем я попытался поместить его в свой тег dropZone, который находится в моем компоненте приложения:
<DropZone dropZone = {"dropZone"} onDragOver = {this.allowDrop.bind(this)}
onDrop ={this.dropHandler.bind(this)} >
</DropZone>
это также не добавляло прослушивателя событий в dropZone. Я пробовал еще пару вещей, но это те, над которыми я должен был работать.
Итак, мои вопросы:
как добавить прослушиватели событий
drop
иdragover
в dropZone?Должен ли я добавлять эти прослушиватели событий в приложение и передавать их компоненту dropZone в качестве опоры? Или нет необходимости в передаче
Или мне следует добавлять прослушиватели событий в dropZone напрямую, чтобы мои функции обработчика событий жили в компоненте dropZone?