Všechny komponenty

MotionList

Seznam z dat, který animuje jen to, co se změnilo.

WebReact NativeSeznamy

Vyzkoušejte

Příprava příkladu…

Nejkratší použití

Todos.jsx
<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 a playKey znovu přehraje příchod.

Použijte pro

  • Seznam úkolů.
  • Filtrované výsledky hledání.
  • Nákupní košík.

Props

PropTypVýchozíPopis
itemsreadonly T[]—povinnéVaše pole dat.
getKey(item) => string | numberitem.idVrací jedinečný stabilní klíč položky. Ve výchozím stavu item.id, u řetězců a čísel samotnou položku.
renderItem(item, index) => ReactNodeitem.labelVykreslí položku.
aselement'div'Prvek, který se renderuje.
itemAselement'li' | 'div'Prvek pro každou položku.
itemClassNamestringTří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í.
distancenumber16Dráha rise a slide v pixelech.
staggernumber40Milisekundy mezi příchozími položkami.
order'forward' | 'reverse''forward'Směr kaskády.
presentbooleantruefalse animuje odchod všech položek a zachová rozvržení; true je vrátí.
initialbooleantruePřehrát příchod při připojení seznamu.
playKeystring | numberJeho změna znovu přehraje příchod.
transitionTransitionspringPřechod pro příchozí a odcházející položky.
layoutTransitionTransitionspringPř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

Hledat

Pište a hledejte v dokumentaci.