Průvodci · 05

Příchod, odchod a rozvržení

Držte odcházející potomky, dokud jejich pohyb neskončí, a animujte změny polohy a velikosti, i napříč komponentami.

Animated.Keep

Animated.Keep drží přímé potomky s key během jejich pózy depart. seed={false} způsobí, že potomci přítomní při prvním renderu začnou ve své póze, wait odloží příchozí potomky, dokud odchody neskončí, a onDeparted se spustí po posledním.

Příprava příkladu…

Animated.Scene a move

Animated.Scene měří potvrzené rozvržení. Prvek s move animuje změny své polohy a velikosti; řetězec jako move="pill" propojí prvky se stejnou identitou uvnitř Scene, i když se jeden odpojí a jiný připojí.

Scene vlastní posun a měřítko rozvržení těchto prvků, takže vlastní transformace dejte na vnořený prvek.

Příprava příkladu…

Přítomnost přes hook

useAnimatedPresence(visible, { enter, exit }) vrací { mounted, animatedValue }, když připojování raději řídíte 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ává stejnou koordinaci zachycení a commitu jakémukoli rendereru nebo ruční změně 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

Hledat

Pište a hledejte v dokumentaci.