Усі компоненти

MotionList

Список із даних, що анімує лише змінене.

ВебReact NativeСписки

Спробуйте

Підготовка прикладу…

Найкоротше використання

Todos.jsx
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;

Що він бере на себе

  • Нові елементи входять з обмеженим каскадом, а незмінені стоять на місці.
  • Видалені елементи залишають потік і анімовано йдуть на своєму місці, а решта зсувається, закриваючи проміжок.
  • Переставлені елементи плавно переїжджають на нові місця.
  • Переміщення, перервані іншою зміною, зберігають швидкість.
  • present={false} анімує вихід усіх елементів, а playKey повторює появу.

Для чого підходить

  • Список завдань.
  • Відфільтровані результати пошуку.
  • Кошик покупок.

Props

ПропТипТиповоОпис
itemsreadonly T[]—обов’язковоВаш масив даних.
getKey(item) => string | numberitem.idПовертає унікальний стабільний ключ елемента. Типово — item.id, а для рядків і чисел — сам елемент.
renderItem(item, index) => ReactNodeitem.labelМалює елемент.
aselement'div'Елемент для рендеру.
itemAselement'li' | 'div'Елемент для кожного пункту.
itemClassNamestringКлас для елемента кожного пункту; itemStyle задає його вбудований стиль.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Як елементи входять і йдуть.
distancenumber16Шлях rise і slide у пікселях.
staggernumber40Мілісекунди між елементами, що входять.
order'forward' | 'reverse''forward'Напрямок каскаду.
presentbooleantruefalse анімує вихід усіх елементів, зберігаючи розкладку; true повертає їх.
initialbooleantrueВідтворювати появу під час монтування списку.
playKeystring | numberЗміна повторює появу.
transitionTransitionspringПерехід для елементів, що входять і йдуть.
layoutTransitionTransitionspringПерехід для елементів, що переїжджають на нові місця.

Решта props передається відрендереному елементу, тож className, style і обробники подій працюють як завжди.

Веб і React Native

Кожен елемент отримує обгортку (li всередині ul чи ol, інакше div; itemAs це змінює), що стилізується через itemClassName.

Ключі мають бути унікальними. Обгорніть список у MotionHeight, щоб анімувати і його загальну висоту.

Використовується в прикладах

Пошук

Почніть вводити, щоб шукати в документації.