Guías · 05

Entrar, salir y layout

Conserva a los hijos que salen hasta que termina su movimiento y anima los cambios de posición y tamaño, incluso entre componentes.

Animated.Keep

Animated.Keep conserva a los hijos directos con key durante su pose depart. seed={false} hace que los hijos presentes en el primer render empiecen en su pose, wait retrasa a los hijos que entran hasta que terminan las salidas y onDeparted se dispara tras la última.

Preparando el ejemplo…

Animated.Scene y move

Animated.Scene mide el layout confirmado. Un elemento con move anima los cambios de su posición y tamaño; una cadena como move="pill" conecta los elementos con la misma identidad dentro de la Scene, aunque uno se desmonte y otro se monte.

La Scene gestiona el translate y el scale de layout de esos elementos, así que pon tus propios transforms en un elemento anidado.

Preparando el ejemplo…

Presencia con un hook

useAnimatedPresence(visible, { enter, exit }) devuelve { mounted, animatedValue } cuando prefieres controlar tú el montaje.

Toast.jsx
const { mounted, animatedValue } = useAnimatedPresence(open, {
  enter: (value) => spring(value, { toValue: 1 }),
  exit: (value) => timing(value, { toValue: 0, duration: 180 }),
});

return mounted ? <div style={{ opacity: animatedValue }}>Saved</div> : null;

Fuera de React

createLayoutScene ofrece la misma coordinación de captura y confirmación a cualquier renderizador o cambio manual del 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

Buscar

Escribe para buscar en la documentación.