Проблема, с которой вы сталкиваетесь, скорее всего, вызвана тем, что DOM-события dragEnter
и dragLeave
запутались вместо каких-либо недостатков в пакете react-dropzone
. Некоторые элементы могут вызывать зависание над ними в определенных положениях, чтобы не регистрироваться как зависание над их родительским элементом. Например, в верхней части любой простой строки, отображаемой внутри отображаемого элемента block
, есть тонкая полоска. Чаще всего это происходит внутри тега <p>
.
Не видя детей, оказавшихся внутри вашей дропзоны, невозможно дать конкретное исправление. Как правило, вам придется возиться со стилем детей. Например, теги <p>
не будут проблемой, если их размер установлен на 0 пикселей или они заменены тегами <span>
. Оба варианта нарушат отображение детей, что, к сожалению, неизбежно.
Что касается использования других событий, вам не повезло. Компонент DropZone использует события DOM onDragEnter
и onDragLeave
HTML. Поэтому любое исправление, которое вы можете придумать, не исправит сам компонент.
В общем, это печальная проблема, с которой просто нужно разобраться. Самый простой способ справиться с этим - просто поместить не более одного фрагмента текста в зону сброса и установить его размер равным 0 пикселей с помощью css: height: 0px;
. Обычные элементы <div>
не будут вызывать проблем, поэтому вы можете создать сложную дропзону, используя их.