The browser APIs provide no way to change the drag preview or its
behavior once drag has started. Libraries such as jQuery UI implement
the drag and drop from scratch to work around this, but react-dnd only
supports browser drag and drop “backend” for now, so we have to accept
its limitations.
We can, however, customize behavior a great deal if we feed the
browser an empty image as drag preview. This library provides a
DragLayer
that you can use to implement a fixed layer on
top of your app where you'd draw a custom drag preview component.
Note that we can draw a completely different component on our drag
layer if we wish so. It's not only a screenshot.
With this approach, we miss out on default “return” animation when dropping outside the container. However, we get great flexibility in customizing drag feedback and zero flicker.