Утримуйте дочірні елементи, що йдуть, доки не закінчиться їхній рух, і анімуйте зміни позиції та розміру, зокрема між компонентами.
Animated.Keep
Animated.Keep утримує прямих нащадків із key упродовж їхньої пози depart. seed={false} змушує нащадків, присутніх під час першого рендеру, починати зі своєї пози, wait відкладає появу нових до завершення виходів, а onDeparted спрацьовує після останнього.
Підготовка прикладу…
Animated.Scene і move
Animated.Scene вимірює зафіксовану розкладку. Елемент із move анімує зміни своєї позиції й розміру; рядок на кшталт move="pill" зв’язує елементи з однаковою ідентичністю всередині Scene, навіть коли один демонтується, а інший монтується.
Scene володіє зсувом і масштабом розкладки цих елементів, тож власні трансформації задавайте вкладеному елементу.
Підготовка прикладу…
Присутність через хук
useAnimatedPresence(visible, { enter, exit }) повертає { mounted, animatedValue }, коли ви волієте керувати монтуванням самі.
createLayoutScene дає ту саму координацію захоплення й фіксації будь-якому рендереру чи ручній зміні 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