Oppaat · 05

Saapuminen, poistuminen ja asettelu

Pidä poistuvat lapset, kunnes niiden liike päättyy, ja animoi sijainnin ja koon muutokset myös komponenttien välillä.

Animated.Keep

Animated.Keep pitää key-avaimelliset suorat lapset niiden depart-asennon ajan. seed={false} saa ensimmäisessä renderöinnissä olevat lapset alkamaan asennostaan, wait viivästää saapuvia lapsia, kunnes poistumiset ovat päättyneet, ja onDeparted laukeaa viimeisen jälkeen.

Valmistellaan esimerkkiä…

Animated.Scene ja move

Animated.Scene mittaa commitoidun asettelun. move-ominaisuuden elementti animoi sijaintinsa ja kokonsa muutokset; merkkijono kuten move="pill" yhdistää saman identiteetin elementit Scenen sisällä silloinkin, kun yksi irrotetaan ja toinen kiinnitetään.

Scene omistaa näiden elementtien asettelun translate- ja scale-arvot, joten laita omat muunnoksesi sisäkkäiseen elementtiin.

Valmistellaan esimerkkiä…

Läsnäolo hookilla

useAnimatedPresence(visible, { enter, exit }) palauttaa { mounted, animatedValue }, kun haluat hallita kiinnittämistä itse.

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;

Reactin ulkopuolella

createLayoutScene antaa saman kaappaus- ja commit-koordinaation mille tahansa renderöijälle tai käsin tehdylle DOM-muutokselle.

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

Haku

Kirjoita hakeaksesi dokumentaatiosta.