Încercați
Se pregătește exemplul…
Cea mai scurtă utilizare
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;Ce rezolvă în locul dumneavoastră
- Elementele noi intră într-o cascadă limitată, în timp ce cele neatinse stau pe loc.
- Elementele eliminate ies din flux și se animă spre ieșire acolo unde erau, în timp ce restul alunecă în gol.
- Elementele reordonate alunecă spre noile poziții.
- Mișcările întrerupte de o altă schimbare își păstrează viteza.
present={false}animă ieșirea fiecărui element, iarplayKeyredă din nou intrarea.
Folosiți-o pentru
- O listă de sarcini.
- Rezultate de căutare filtrate.
- Un coș de cumpărături.
Props
| Prop | Tip | Implicit | Descriere |
|---|---|---|---|
items | readonly T[] | —obligatoriu | Tabloul cu datele dumneavoastră. |
getKey | (item) => string | number | item.id | Returnează un key unic și stabil pentru un element. Implicit item.id sau elementul însuși pentru șiruri și numere. |
renderItem | (item, index) => ReactNode | item.label | Desenează un element. |
as | element | 'div' | Elementul de randat. |
itemAs | element | 'li' | 'div' | Elementul pentru fiecare element din listă. |
itemClassName | string | Clasă pentru fiecare element din listă; itemStyle îi setează stilul inline. | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | Cum intră și ies elementele. |
distance | number | 16 | Distanța parcursă de rise și slide, în pixeli. |
stagger | number | 40 | Milisecunde între elementele care intră. |
order | 'forward' | 'reverse' | 'forward' | Direcția cascadei. |
present | boolean | true | false animă ieșirea fiecărui element păstrând layoutul; true le aduce înapoi. |
initial | boolean | true | Redă intrarea când lista se montează. |
playKey | string | number | Schimbarea lui redă din nou intrarea. | |
transition | Transition | spring | Tranziția pentru elementele care intră și ies. |
layoutTransition | Transition | spring | Tranziția pentru elementele care alunecă spre poziții noi. |
Celelalte props merg la elementul randat, așa că className, style și handlerele de evenimente funcționează ca de obicei.
Web și React Native
Fiecare element primește un element de înveliș (li în ul sau ol, altfel div; itemAs schimbă asta), stilizat cu itemClassName.
Key-urile trebuie să fie unice. Înfășurați lista în MotionHeight ca să-i animați și înălțimea totală.
Folosită în aceste exemple
- Răspuns în chatSugestii care se pliază, un răspuns transmis într-un ritm constant și o linie de status care se schimbă.
MotionStreamMotionListMotionSwapMotionHeight - Rezumatul comenziiCantitățile, totalurile pe rând și totalul se rotesc când se schimbă coșul; notificarea de cupon intră și pleacă; plata cere o apăsare lungă deliberată.
MotionListMotionNumberMotionPresenceMotionHold - InboxFile de filtrare cu contoare live, rânduri care pot fi glisate deoparte și o listă care închide golul.
MotionHighlightMotionListMotionSwipeMotionNumber