Útmutatók · 05

Belépés, távozás és elrendezés

Tartsa meg a távozó gyermekeket, amíg a mozgásuk véget nem ér, és animálja a pozíció- és méretváltozásokat, akár komponenseken át is.

Animated.Keep

Az Animated.Keep a key-jel rendelkező közvetlen gyermekeket a depart pózukon át megtartja. A seed={false} miatt az első rendereléskor jelen lévő gyermekek a saját pózukban kezdenek, a wait a belépő gyermekeket a távozások végéig késlelteti, az onDeparted pedig az utolsó után fut le.

A példa előkészítése…

Animated.Scene és move

Az Animated.Scene megméri a commitolt elrendezést. A move tulajdonságú elem animálja a pozíció- és méretváltozásait; egy olyan karakterlánc, mint a move="pill", összeköti az azonos identitású elemeket a Scene-en belül, akkor is, ha az egyik leválik, a másik pedig csatolódik.

A Scene birtokolja ezeknek az elemeknek az elrendezési translate és scale értékét, ezért a saját transzformációit egy beágyazott elemre tegye.

A példa előkészítése…

Jelenlét hookkal

A useAnimatedPresence(visible, { enter, exit }) { mounted, animatedValue } értéket ad vissza, ha inkább maga vezérli a csatolást.

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;

A Reacten kívül

A createLayoutScene ugyanazt a rögzítés/commit koordinációt adja bármely renderelőnek vagy kézi DOM-módosításnak.

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

Keresés

Gépeljen a dokumentációban való kereséshez.