Guide · 05

Entrata, uscita e layout

Mantieni i figli in uscita finché il loro movimento non termina, e anima i cambi di posizione e dimensione, anche tra componenti diversi.

Animated.Keep

Animated.Keep conserva i figli diretti con key durante la loro pose depart. seed={false} fa partire dalla loro pose i figli presenti al primo render, wait ritarda l’entrata dei nuovi figli finché le uscite non terminano e onDeparted scatta dopo l’ultima.

Preparazione dell’esempio…

Animated.Scene e move

Animated.Scene misura il layout confermato. Un elemento con move anima i cambi di posizione e dimensione; una stringa come move="pill" collega elementi con la stessa identità dentro la Scene, anche quando uno si smonta e un altro si monta.

La Scene possiede la traslazione e la scala di layout di quegli elementi, quindi metti le tue trasformazioni su un elemento annidato.

Preparazione dell’esempio…

Presenza con un hook

useAnimatedPresence(visible, { enter, exit }) restituisce { mounted, animatedValue } quando preferisci controllare tu il montaggio.

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;

Fuori da React

createLayoutScene offre lo stesso coordinamento di cattura e commit a qualsiasi renderer o modifica manuale 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

Cerca

Scrivi per cercare nella documentazione.