Vadovai · 05

Įėjimas, išėjimas ir išdėstymas

Išlaikykite išeinančius vaikus, kol baigsis jų judesys, ir animuokite padėties bei dydžio pokyčius, net tarp komponentų.

Animated.Keep

Animated.Keep išlaiko tiesioginius vaikus su key per jų depart pozą. seed={false} priverčia pirmojo atvaizdavimo vaikus pradėti savo pozoje, wait atideda įeinančius vaikus, kol baigsis išėjimai, o onDeparted suveikia po paskutinio.

Ruošiamas pavyzdys…

Animated.Scene ir move

Animated.Scene išmatuoja patvirtintą išdėstymą. Elementas su move animuoja savo padėties ir dydžio pokyčius; eilutė, pavyzdžiui, move="pill", Scene viduje sujungia elementus su ta pačia tapatybe, net kai vienas atjungiamas, o kitas prijungiamas.

Scene valdo tų elementų išdėstymo translate ir scale, todėl savo transformacijas dėkite į įdėtą elementą.

Ruošiamas pavyzdys…

Buvimas su hook

useAnimatedPresence(visible, { enter, exit }) grąžina { mounted, animatedValue }, kai prijungimą norite valdyti patys.

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;

Už React ribų

createLayoutScene suteikia tą patį fiksavimo/commit koordinavimą bet kuriam atvaizdavimo varikliui ar rankiniam DOM pakeitimui.

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

Paieška

Rašykite, kad ieškotumėte dokumentacijoje.