MotionList
Seznam z dat, který animuje jen to, co se změnilo.
WebReact NativeSeznamy
Vyzkoušejte
Příprava příkladu…
Nejkratší použití
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;Co za vás vyřeší
- Nové položky přicházejí s omezenou kaskádou, zatímco nedotčené stojí.
- Odebrané položky opustí tok a animovaně odejdou na svém místě, zatímco ostatní zaplní mezeru.
- Přeřazené položky kloužou na nová místa.
- Přesuny přerušené jinou změnou si zachovají rychlost.
present={false}animuje odchod všech položek aplayKeyznovu přehraje příchod.
Použijte pro
- Seznam úkolů.
- Filtrované výsledky hledání.
- Nákupní košík.
Props
| Prop | Typ | Výchozí | Popis |
|---|---|---|---|
items | readonly T[] | —povinné | Vaše pole dat. |
getKey | (item) => string | number | item.id | Vrací jedinečný stabilní klíč položky. Ve výchozím stavu item.id, u řetězců a čísel samotnou položku. |
renderItem | (item, index) => ReactNode | item.label | Vykreslí položku. |
as | element | 'div' | Prvek, který se renderuje. |
itemAs | element | 'li' | 'div' | Prvek pro každou položku. |
itemClassName | string | Třída pro prvek každé položky; itemStyle nastaví jeho inline styl. | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | Jak položky přicházejí a odcházejí. |
distance | number | 16 | Dráha rise a slide v pixelech. |
stagger | number | 40 | Milisekundy mezi příchozími položkami. |
order | 'forward' | 'reverse' | 'forward' | Směr kaskády. |
present | boolean | true | false animuje odchod všech položek a zachová rozvržení; true je vrátí. |
initial | boolean | true | Přehrát příchod při připojení seznamu. |
playKey | string | number | Jeho změna znovu přehraje příchod. | |
transition | Transition | spring | Přechod pro příchozí a odcházející položky. |
layoutTransition | Transition | spring | Přechod pro položky klouzající na nová místa. |
Ostatní props jdou do renderovaného prvku, takže className, style a obsluhy událostí fungují jako obvykle.
Web a React Native
Každá položka dostane obalový prvek (li uvnitř ul nebo ol, jinak div; itemAs to změní) stylovaný přes itemClassName.
Klíče musí být jedinečné. Obalte seznam do MotionHeight, aby se animovala i jeho celková výška.
Použito v těchto příkladech
- Odpověď v chatuNávrhy, které se sbalí, odpověď streamovaná stálým tempem a stavový řádek, který se vymění.
MotionStreamMotionListMotionSwapMotionHeight - Souhrn pokladnyMnožství, součty řádků i celkový součet rolují se změnami košíku; upozornění na kupón přichází a odchází; placení vyžaduje záměrné podržení.
MotionListMotionNumberMotionPresenceMotionHold - Doručená poštaKarty filtrů s živými počty, řádky, které lze odsunout přejetím, a seznam, který zacelí mezeru.
MotionHighlightMotionListMotionSwipeMotionNumber