Alle componenten

MotionList

Een lijst uit data die alleen animeert wat veranderde.

WebReact NativeLijsten

Probeer het

Voorbeeld voorbereiden…

Kortste gebruik

Todos.jsx
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;

Wat het voor je regelt

  • Nieuwe items komen binnen met een begrensde cascade terwijl onaangeroerde items stil blijven staan.
  • Verwijderde items verlaten de flow en animeren weg waar ze stonden, terwijl de rest opschuift om het gat te dichten.
  • Herordende items glijden naar hun nieuwe plek.
  • Bewegingen die door een andere wijziging worden onderbroken, behouden hun snelheid.
  • present={false} animeert elk item weg, en playKey speelt het binnenkomen opnieuw af.

Gebruik het voor

  • Een takenlijst.
  • Gefilterde zoekresultaten.
  • Een winkelwagen.

Props

PropTypeStandaardBeschrijving
itemsreadonly T[]—verplichtJe data-array.
getKey(item) => string | numberitem.idGeeft een unieke, stabiele key voor een item terug. Standaard item.id, of het item zelf bij strings en getallen.
renderItem(item, index) => ReactNodeitem.labelTekent een item.
aselement'div'Het element dat wordt gerenderd.
itemAselement'li' | 'div'Het element voor elk item.
itemClassNamestringClass voor elk item-element; itemStyle zet de inline style.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Hoe items binnenkomen en vertrekken.
distancenumber16Afstand van rise en slide in pixels.
staggernumber40Milliseconden tussen binnenkomende items.
order'forward' | 'reverse''forward'Richting van de cascade.
presentbooleantruefalse animeert elk item weg en behoudt de layout; true brengt ze terug.
initialbooleantrueSpeel het binnenkomen af als de lijst mount.
playKeystring | numberWijzigen speelt het binnenkomen opnieuw af.
transitionTransitionspringOvergang voor binnenkomende en vertrekkende items.
layoutTransitionTransitionspringOvergang voor items die naar een nieuwe plek glijden.

Andere props gaan naar het gerenderde element, dus className, style en event handlers werken zoals gewoonlijk.

Web en React Native

Elk item krijgt een wrapper-element (li binnen ul of ol, anders div; itemAs verandert dat) met stijl via itemClassName.

Keys moeten uniek zijn. Wikkel de lijst in MotionHeight om ook de totale hoogte te animeren.

Gebruikt in deze voorbeelden

Zoeken

Typ om de documentatie te doorzoeken.