Всички компоненти

MotionList

Списък от данни, който анимира само промененото.

УебReact NativeСписъци

Опитайте

Подготовка на примера…

Най-кратка употреба

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

С какво се справя вместо вас

  • Новите елементи влизат с ограничена каскада, докато недокоснатите стоят неподвижно.
  • Премахнатите елементи напускат потока и излизат анимирано на мястото си, докато останалите се плъзгат, за да затворят празнината.
  • Пренаредените елементи се плъзгат към новите си позиции.
  • Преместванията, прекъснати от друга промяна, запазват скоростта си.
  • present={false} анимира излизането на всички елементи, а playKey възпроизвежда отново влизането.

Подходящ за

  • Списък със задачи.
  • Филтрирани резултати от търсене.
  • Пазарска количка.

Props

PropТипПо подразбиранеОписание
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, за да анимирате и общата му височина.

Използван в тези примери

Търсене

Пишете, за да търсите в документацията.