Toate componentele

MotionList

O listă din date care animă doar ce s-a schimbat.

WebReact NativeListe

Încercați

Se pregătește exemplul…

Cea mai scurtă utilizare

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

Ce rezolvă în locul dumneavoastră

  • Elementele noi intră într-o cascadă limitată, în timp ce cele neatinse stau pe loc.
  • Elementele eliminate ies din flux și se animă spre ieșire acolo unde erau, în timp ce restul alunecă în gol.
  • Elementele reordonate alunecă spre noile poziții.
  • Mișcările întrerupte de o altă schimbare își păstrează viteza.
  • present={false} animă ieșirea fiecărui element, iar playKey redă din nou intrarea.

Folosiți-o pentru

  • O listă de sarcini.
  • Rezultate de căutare filtrate.
  • Un coș de cumpărături.

Props

PropTipImplicitDescriere
itemsreadonly T[]—obligatoriuTabloul cu datele dumneavoastră.
getKey(item) => string | numberitem.idReturnează un key unic și stabil pentru un element. Implicit item.id sau elementul însuși pentru șiruri și numere.
renderItem(item, index) => ReactNodeitem.labelDesenează un element.
aselement'div'Elementul de randat.
itemAselement'li' | 'div'Elementul pentru fiecare element din listă.
itemClassNamestringClasă pentru fiecare element din listă; itemStyle îi setează stilul inline.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Cum intră și ies elementele.
distancenumber16Distanța parcursă de rise și slide, în pixeli.
staggernumber40Milisecunde între elementele care intră.
order'forward' | 'reverse''forward'Direcția cascadei.
presentbooleantruefalse animă ieșirea fiecărui element păstrând layoutul; true le aduce înapoi.
initialbooleantrueRedă intrarea când lista se montează.
playKeystring | numberSchimbarea lui redă din nou intrarea.
transitionTransitionspringTranziția pentru elementele care intră și ies.
layoutTransitionTransitionspringTranziția pentru elementele care alunecă spre poziții noi.

Celelalte props merg la elementul randat, așa că className, style și handlerele de evenimente funcționează ca de obicei.

Web și React Native

Fiecare element primește un element de înveliș (li în ul sau ol, altfel div; itemAs schimbă asta), stilizat cu itemClassName.

Key-urile trebuie să fie unice. Înfășurați lista în MotionHeight ca să-i animați și înălțimea totală.

Folosită în aceste exemple

Căutare

Tastați pentru a căuta în documentație.