Hướng dẫn · 05

Vào, rời và bố cục

Giữ các children đang rời đi cho đến khi chuyển động kết thúc, và tạo hoạt ảnh cho thay đổi vị trí và kích thước, kể cả qua các component.

Animated.Keep

Animated.Keep giữ các children trực tiếp có key qua pose depart của chúng. seed={false} khiến children có mặt ở lần render đầu bắt đầu tại pose của chúng, wait hoãn children đi vào cho đến khi việc rời đi xong, và onDeparted được gọi sau cái cuối cùng.

Đang chuẩn bị ví dụ…

Animated.Scene và move

Animated.Scene đo bố cục đã commit. Phần tử có move tạo hoạt ảnh cho thay đổi vị trí và kích thước; một chuỗi như move="pill" nối các phần tử cùng danh tính trong Scene, ngay cả khi một cái unmount và cái khác mount.

Scene sở hữu translate và scale bố cục của các phần tử đó, nên hãy đặt transform của bạn lên một phần tử lồng bên trong.

Đang chuẩn bị ví dụ…

Hiện diện bằng hook

useAnimatedPresence(visible, { enter, exit }) trả về { mounted, animatedValue } khi bạn muốn tự điều khiển việc mount.

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;

Bên ngoài React

createLayoutScene mang cùng cơ chế phối hợp capture/commit cho bất kỳ renderer hay thay đổi DOM thủ công nào.

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

Tìm kiếm

Gõ để tìm trong tài liệu.