Почему я не могу drag после drop если указано родителю backgroundColor?

Если вы не можете перетаскивать элемент после его сброса (drop) при указанном свойстве backgroundColor у его родительского элемента, это может быть связано с использованием функциональности Drag and Drop (перетаскивание и сброс) в React Native.

Проблема может возникать из-за того, что вы, вероятно, устанавливаете backgroundColor для родительского элемента и этот цвет блокирует события перетаскивания и сброса. По умолчанию, если у элемента установлено какое-либо свойство backgroundColor, он становится непрозрачным и не пропускает события мыши/сенсоров.

В React Native события перетаскивания и сброса базируются на событиях жестов, которые обрабатываются системой ввода. Отдельные элементы, у которых установлено свойство backgroundColor, могут быть остановлены в своих действиях, и это может привести к тому, что перетаскивание и сброс не срабатывают.

Существует несколько возможных решений этой проблемы:

1. Убедитесь, что у родительского элемента установлено следующее свойство: pointerEvents: "box-none". Это свойство позволяет событиям проходить через элемент и обрабатываться дочерними элементами.

<View style={{ backgroundColor: "red", pointerEvents: "box-none" }}>
  <DraggableElement />
</View>

2. Попробуйте добавить свойство zIndex для родительского элемента. Установка значения zIndex для родительского элемента может помочь изменить порядок обработки событий и позволить перетаскиванию и сбросу срабатывать независимо от цвета фона.

<View style={{ backgroundColor: "red", zIndex: -1 }}>
  <DraggableElement />
</View>

3. Разделите родительский элемент на два отдельных компонента. Один компонент будет отвечать за задний фон с backgroundColor, а другой компонент будет содержать перетаскиваемый элемент. Таким образом, события перетаскивания и сброса будут обрабатываться независимо от цвета фона.

<View style={{ backgroundColor: "red" }}>
  <View style={{ position: "absolute" }}>
    <DraggableElement />
  </View>
</View>

Итак, чтобы позволить перетаскиванию и сбросу работать правильно, убедитесь, что у родительского элемента нет непрозрачного фона, пропустите события через указание pointerEvents: "box-none" или измените порядок обработки событий с помощью zIndex.