Guides · 05

Entrées, sorties et mise en page

Garder les enfants qui partent jusqu’à la fin de leur mouvement, et animer les changements de position et de taille, y compris d’un composant à l’autre.

Animated.Keep

Animated.Keep conserve les enfants directs avec key pendant leur pose depart. seed={false} fait démarrer à leur pose les enfants présents au premier rendu, wait retarde les enfants entrants jusqu’à la fin des sorties, et onDeparted se déclenche après la dernière.

Préparation de l’exemple…

Animated.Scene et move

Animated.Scene mesure la mise en page validée. Un élément avec move anime les changements de sa position et de sa taille ; une chaîne comme move="pill" relie les éléments de même identité dans la Scene, même quand l’un est démonté et un autre monté.

La Scene gère le translate et le scale de mise en page de ces éléments : placez vos propres transforms sur un élément imbriqué.

Préparation de l’exemple…

Présence avec un hook

useAnimatedPresence(visible, { enter, exit }) renvoie { mounted, animatedValue } quand vous préférez contrôler le montage vous-même.

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;

En dehors de React

createLayoutScene offre la même coordination capture/validation à n’importe quel moteur de rendu ou changement manuel du 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

Rechercher

Tapez pour rechercher dans la documentation.