MotionList
Zoznam z údajov, ktorý animuje len to, čo sa zmenilo.
WebReact NativeZoznamy
Vyskúšajte
Príprava príkladu…
Najkratšie použitie
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;Čo za vás vyrieši
- Nové položky prichádzajú s obmedzenou kaskádou, zatiaľ čo nedotknuté stoja.
- Odobraté položky opustia tok a animovane odídu na svojom mieste, zatiaľ čo ostatné zaplnia medzeru.
- Preradené položky kĺžu na nové miesta.
- Presuny prerušené inou zmenou si zachovajú rýchlosť.
present={false}animuje odchod všetkých položiek aplayKeyznova prehrá príchod.
Použite na
- Zoznam úloh.
- Filtrované výsledky hľadania.
- Nákupný košík.
Props
| Prop | Typ | Predvolené | Popis |
|---|---|---|---|
items | readonly T[] | —povinné | Vaše pole údajov. |
getKey | (item) => string | number | item.id | Vracia jedinečný stabilný kľúč položky. Predvolene item.id, pri reťazcoch a číslach samotnú položku. |
renderItem | (item, index) => ReactNode | item.label | Vykreslí položku. |
as | element | 'div' | Prvok, ktorý sa renderuje. |
itemAs | element | 'li' | 'div' | Prvok pre každú položku. |
itemClassName | string | Trieda pre prvok každej položky; itemStyle nastaví jeho inline štýl. | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | Ako položky prichádzajú a odchádzajú. |
distance | number | 16 | Dráha rise a slide v pixeloch. |
stagger | number | 40 | Milisekundy medzi prichádzajúcimi položkami. |
order | 'forward' | 'reverse' | 'forward' | Smer kaskády. |
present | boolean | true | false animuje odchod všetkých položiek a zachová rozloženie; true ich vráti. |
initial | boolean | true | Prehrať príchod pri pripojení zoznamu. |
playKey | string | number | Jeho zmena znova prehrá príchod. | |
transition | Transition | spring | Prechod pre prichádzajúce a odchádzajúce položky. |
layoutTransition | Transition | spring | Prechod pre položky kĺžuce na nové miesta. |
Ostatné props idú do renderovaného prvku, takže className, style a obsluhy udalostí fungujú ako obvykle.
Web a React Native
Každá položka dostane obaľovací prvok (li vnútri ul alebo ol, inak div; itemAs to zmení) štýlovaný cez itemClassName.
Kľúče musia byť jedinečné. Obaľte zoznam do MotionHeight, aby sa animovala aj jeho celková výška.
Použité v týchto príkladoch
- Odpoveď v chateNávrhy, ktoré sa zbalia, odpoveď streamovaná stálym tempom a stavový riadok, ktorý sa vymení.
MotionStreamMotionListMotionSwapMotionHeight - Súhrn pokladneMnožstvá, súčty riadkov aj celkový súčet rolujú so zmenami košíka; upozornenie na kupón prichádza a odchádza; platenie vyžaduje zámerné podržanie.
MotionListMotionNumberMotionPresenceMotionHold - Doručená poštaKarty filtrov so živými počtami, riadky, ktoré možno odsunúť potiahnutím, a zoznam, ktorý zacelí medzeru.
MotionHighlightMotionListMotionSwipeMotionNumber