Descreva o bug
Eu tenho um alvo de soltar conectado que é removido do DOM, uma vez que algo é solto nele.
Agora, desde a atualização para v7.1.0
, estou recebendo
Uncaught TypeError: Cannot read property '0' of undefined
na chamada monitor.isOver()
dentro da função collect
.
De alguma forma, ele vê que a função de coleta ainda é chamada mais uma vez, após a remoção do alvo de soltar ( targetId
é indefinido).
Interessante
6.0.0
resolveu o problema.setTimeout
curto em volta do meu retorno de chamada que removeu o destino de soltar, resolveu o problema.Alguma ideia do que pode causar isso?
Reproduzir
Passos para reproduzir o comportamento:
monitor.isOver()
em collect
drop(...)
que remove o alvo de soltarComportamento esperado
Não há problema de tempo com isOver
e os alvos de descarte podem ser removidos imediatamente.
Capturas de tela
Desktop (preencha as seguintes informações):
7.1.0
O mesmo problema
Tentei reverter essa alteração https://github.com/react-dnd/react-dnd/commit/0feb250b7ee90483e31f3bc159ebf946980d53a7#diff -ac418ba19283aec1fb0b70e6570c5613 e resolvido ...
O mesmo problema.
Aguardando correção.
Revertido para v7.0.2
Confirmado que estamos recebendo o mesmo problema - a reversão para 7.0.2 corrige o problema
Isso está sendo causado porque a mudança em 0feb250b7ee90483e31f3bc159ebf946980d53a7 está permitindo que o ID do alvo seja undefined
mas ninguém verificou o PR com essa mudança para isOverTarget
Atualmente, seu protótipo é:
public isOverTarget(targetId: string, options = { shallow: false })
ao contrário das outras funções que mudaram naquele pr que movem targetId
/ sourceId
para
targetId: string | undefined
sourceId: string | undefined
e verifique:
if (!targetId) {
return false;
}
Uma correção para esse problema será verificar se targetId
é undefined
aqui: https://github.com/mattkrick/react-dnd/blob/aafcf7d67f8b3a2035b561e97b7874e1064447e4/packages/dnd-core/src /DragDropMonitorImpl.ts#L128
Isso deve ser corrigido pelo PR do cfrank em um comunicado de hoje
Incrível, pessoal, obrigado @cfrank
Comentários muito úteis
Isso deve ser corrigido pelo PR do cfrank em um comunicado de hoje