Mantenha os filhos que estão saindo até o movimento terminar e anime mudanças de posição e tamanho, inclusive entre componentes.
Animated.Keep
Animated.Keep mantém os filhos diretos com key durante a pose depart. seed={false} faz os filhos presentes no primeiro render começarem na própria pose, wait segura os filhos que entram até as saídas terminarem e onDeparted dispara depois da última.
Preparando o exemplo…
Animated.Scene e move
Animated.Scene mede o layout confirmado. Um elemento com move anima as mudanças de posição e tamanho; uma string como move="pill" conecta elementos com a mesma identidade dentro da Scene, mesmo quando um é desmontado e outro é montado.
A Scene controla o translate e o scale de layout desses elementos, então coloque seus próprios transforms em um elemento aninhado.
Preparando o exemplo…
Presença com um hook
useAnimatedPresence(visible, { enter, exit }) retorna { mounted, animatedValue } quando você prefere controlar a montagem por conta própria.
createLayoutScene oferece a mesma coordenação de captura e confirmação para qualquer renderizador ou alteração manual do DOM.
outside-react.js
const scene = createLayoutScene({ tempo: { spring: { stiffness: 320, damping: 30 } } });
const card = scene.attach(element, { key: 'card' });
scene.capture(); // before the DOM changes
list.prepend(element); // any renderer or manual DOM work
scene.commit(); // animates from the captured rectangles