Sprievodcovia · 05

Príchod, odchod a rozloženie

Držte odchádzajúcich potomkov, kým sa ich pohyb neskončí, a animujte zmeny polohy a veľkosti, aj naprieč komponentmi.

Animated.Keep

Animated.Keep drží priamych potomkov s key počas ich pózy depart. seed={false} spôsobí, že potomkovia prítomní pri prvom renderi začnú vo svojej póze, wait odloží prichádzajúcich potomkov, kým sa odchody neskončia, a onDeparted sa spustí po poslednom.

Príprava príkladu…

Animated.Scene a move

Animated.Scene meria potvrdené rozloženie. Prvok s move animuje zmeny svojej polohy a veľkosti; reťazec ako move="pill" prepojí prvky s rovnakou identitou vnútri Scene, aj keď sa jeden odpojí a iný pripojí.

Scene vlastní posun a mierku rozloženia týchto prvkov, takže vlastné transformácie dajte na vnorený prvok.

Príprava príkladu…

Prítomnosť cez hook

useAnimatedPresence(visible, { enter, exit }) vracia { mounted, animatedValue }, keď pripájanie radšej riadite sami.

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;

Mimo React

createLayoutScene dáva rovnakú koordináciu zachytenia a commitu akémukoľvek rendereru alebo ručnej zmene 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

Hľadať

Píšte a hľadajte v dokumentácii.