MotionList
Popis iz podataka koji animira samo ono što se promijenilo.
WebReact NativePopisi
Isprobajte
Priprema primjera…
Najkraća upotreba
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;Što obavlja umjesto vas
- Nove stavke ulaze s ograničenom kaskadom, dok netaknute miruju.
- Uklonjene stavke napuštaju tok i animirano odlaze na svom mjestu, dok ostale klize da zatvore prazninu.
- Preraspoređene stavke klize na nove položaje.
- Pomaci prekinuti drugom promjenom zadržavaju brzinu.
present={false}animira odlazak svih stavki, aplayKeyponovno reproducira ulazak.
Koristite je za
- Popis zadataka.
- Filtrirani rezultati pretraživanja.
- Košarica.
Props
| Prop | Tip | Zadano | Opis |
|---|---|---|---|
items | readonly T[] | —obavezno | Vaš niz podataka. |
getKey | (item) => string | number | item.id | Vraća jedinstven, stabilan ključ stavke. Zadano je item.id, a za nizove znakova i brojeve sama stavka. |
renderItem | (item, index) => ReactNode | item.label | Crta stavku. |
as | element | 'div' | Element koji se renderira. |
itemAs | element | 'li' | 'div' | Element za svaku stavku. |
itemClassName | string | Klasa za element svake stavke; itemStyle postavlja njegov inline stil. | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | Kako stavke ulaze i izlaze. |
distance | number | 16 | Put za rise i slide u pikselima. |
stagger | number | 40 | Milisekunde između stavki koje ulaze. |
order | 'forward' | 'reverse' | 'forward' | Smjer kaskade. |
present | boolean | true | false animira odlazak svih stavki uz zadržavanje rasporeda; true ih vraća. |
initial | boolean | true | Reproduciraj ulazak kad se popis montira. |
playKey | string | number | Njegova promjena ponovno reproducira ulazak. | |
transition | Transition | spring | Prijelaz za stavke koje ulaze i izlaze. |
layoutTransition | Transition | spring | Prijelaz za stavke koje klize na nove položaje. |
Ostali props idu renderiranom elementu, pa className, style i rukovatelji događaja rade kao i obično.
Web i React Native
Svaka stavka dobiva omotački element (li unutar ul ili ol, inače div; itemAs to mijenja) stiliziran s itemClassName.
Ključevi moraju biti jedinstveni. Omotajte popis u MotionHeight da biste animirali i njegovu ukupnu visinu.
Korišteno u ovim primjerima
- Odgovor u chatuPrijedlozi koji se sklapaju, odgovor koji pristiže ujednačenim tempom i redak statusa koji se zamjenjuje.
MotionStreamMotionListMotionSwapMotionHeight - Sažetak blagajneKoličine, zbrojevi redaka i ukupni iznos vrte se dok se košarica mijenja; obavijest o kuponu ulazi i odlazi; plaćanje traži namjerno držanje.
MotionListMotionNumberMotionPresenceMotionHold - Pristigla poštaKartice filtara s brojevima uživo, retci koji se mogu odbaciti povlačenjem i popis koji zatvara prazninu.
MotionHighlightMotionListMotionSwipeMotionNumber