Estou tentando disparar ações de redux que ajudam a rastrear vários estados DnD globalmente. Preciso saber se o arrasto está acontecendo e que tipo de alvo (de preferência, exatamente qual alvo) está sendo pairado. Detectar arrastar é fácil o suficiente usando a especificação da fonte, mas não consigo descobrir como detectar pairando em um alvo. Ele tem o método 'hover' na especificação, mas dispara continuamente e, pelo que posso dizer, não há como saber quando o hover para. Eu poderia usar o tempo limite, mas isso não parece o ideal. Pensei em envolver a área principal do aplicativo em um dropTarget e usar a verificação 'superficial', mas isso não dá informações sobre que tipo de destino de soltar está sendo pairado. Suspeito que há alguma maneira de explorar o Contexto DnD, mas ainda não investiguei muito.
Pode ser capaz de vincular meus próprios eventos onDrag*
para fazer o que preciso. Adiciona uma ligeira interdependência entre o código do meu aplicativo e react-dnd
, em termos de suposições sobre qual backend de arrasto estou usando. Mas provavelmente está bem.
Você pode usar métodos de ciclo de vida componentWillReceiveProps
e disparar uma ação quando nextProps.isOver !== this.props.isOver
. Você precisaria adicionar isOver: monitor.isOver()
à sua função DropTarget
collect()
.
Comentários muito úteis
Você pode usar métodos de ciclo de vida
componentWillReceiveProps
e disparar uma ação quandonextProps.isOver !== this.props.isOver
. Você precisaria adicionarisOver: monitor.isOver()
à sua funçãoDropTarget
collect()
.