Vídeo demonstrando meu problema: https://i.imgur.com/L3laZLc.mp4
Eu tenho um aplicativo simples onde você pode adicionar cartões a 2 linhas diferentes. Quando um cartão é adicionado a uma linha, estou usando react-transition-group
para acionar uma animação "enter".
No entanto, também react-beautiful-dnd
instalei para permitir o arrastamento de cartões entre as linhas e também para reordenar as próprias linhas. Porém, quando um cartão é movido para uma nova linha ou quando as linhas são reordenadas, alguns deles são acionados pela animação "entrar", o que parece muito estranho e não deveria estar acontecendo.
Ao arrastar, a animação indesejada será acionada quando
Um cartão é arrastado para uma linha diferente.
Uma linha é reordenada e as 2 linhas têm diferentes números de cartões.
Estranhamente, as animações indesejadas não acontecerão quando
- Um cartão é arrastado para uma nova posição dentro de sua linha original.
- As linhas são reordenadas e as linhas têm o mesmo número de cartões.
Gostaria de saber como posso tê-lo, para que as react-transition-group
animações não sejam acionadas quando o state
modificado for usado react-beautiful-dnd
.
Sandbox do meu problema (Mais informações nos comentários no App.js
arquivo):
setImmediate()
na linha 75?setImmediate
não é padrão de acordo com o MDN e eles recomendam não usar na produção, o que meu aplicativo completo pretende fazer.Em
App.js
que você mencionou o seguinte comentário, que é a sua exigência:O que eu quero:
Gostaria que as
react-transition-group
animações disparassem apenas quando um novo estado fosse adicionadoe não quando o estado é modificado arrastando e soltando (com a
onDragEnd
função);Esse problema pode ser corrigido apenas com a introdução de um novo sinalizador
hasNewCard
. Este sinalizador serátrue
somente quando um novo cartão for criado, não quando o estado for modificado poronDragEnd
.Então aqui a
react-transition-group
animação deve ser acionada apenas quandohasNewCard
estivertrue
.Versão do CodeSandbox:
https://codesandbox.io/s/get-beautiful-drag-to-not-trigger-transition-group-share-o25ej
fonte