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