Опитайте
Подготовка на примера…
Най-кратка употреба
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;С какво се справя вместо вас
- Новите елементи влизат с ограничена каскада, докато недокоснатите стоят неподвижно.
- Премахнатите елементи напускат потока и излизат анимирано на мястото си, докато останалите се плъзгат, за да затворят празнината.
- Пренаредените елементи се плъзгат към новите си позиции.
- Преместванията, прекъснати от друга промяна, запазват скоростта си.
present={false}анимира излизането на всички елементи, аplayKeyвъзпроизвежда отново влизането.
Подходящ за
- Списък със задачи.
- Филтрирани резултати от търсене.
- Пазарска количка.
Props
| Prop | Тип | По подразбиране | Описание |
|---|---|---|---|
items | readonly T[] | —задължително | Вашият масив с данни. |
getKey | (item) => string | number | item.id | Връща уникален стабилен ключ за елемент. По подразбиране item.id, а за низове и числа — самия елемент. |
renderItem | (item, index) => ReactNode | item.label | Рисува елемент. |
as | element | 'div' | Елементът за рендериране. |
itemAs | element | 'li' | 'div' | Елементът за всяка позиция. |
itemClassName | string | Клас за елемента на всяка позиция; itemStyle задава вградения му стил. | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | Как елементите влизат и излизат. |
distance | number | 16 | Път на rise и slide в пиксели. |
stagger | number | 40 | Милисекунди между влизащите елементи. |
order | 'forward' | 'reverse' | 'forward' | Посока на каскадата. |
present | boolean | true | false анимира излизането на всички елементи, като запазва оформлението; true ги връща. |
initial | boolean | true | Възпроизвеждай влизането при монтиране на списъка. |
playKey | string | number | Промяната му възпроизвежда влизането отново. | |
transition | Transition | spring | Преход за влизащи и излизащи елементи. |
layoutTransition | Transition | spring | Преход за елементи, плъзгащи се към нови позиции. |
Другите props отиват към рендерирания елемент, така че className, style и обработчиците на събития работят както обикновено.
Уеб и React Native
Всеки елемент получава обвиващ елемент (li в ul или ol, иначе div; itemAs го променя), стилизиран с itemClassName.
Ключовете трябва да са уникални. Обвийте списъка в MotionHeight, за да анимирате и общата му височина.
Използван в тези примери
- Отговор в чатПредложения, които се свиват, отговор, който тече с равномерно темпо, и ред за статус, който се сменя.
MotionStreamMotionListMotionSwapMotionHeight - Обобщение на поръчкатаКоличествата, сумите по редове и общата сума се превъртат с промените в количката; съобщението за купона влиза и излиза; плащането изисква съзнателно задържане.
MotionListMotionNumberMotionPresenceMotionHold - Входяща пощаРаздели-филтри с броячи на живо, редове, които могат да се отместят, и списък, който затваря празнината.
MotionHighlightMotionListMotionSwipeMotionNumber