Alla komponenter

MotionList

En lista från data som bara animerar det som ändrats.

WebbReact NativeListor

Prova

Förbereder exemplet…

Kortaste användning

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

Det här sköter den åt dig

  • Nya objekt kommer in med begränsad kaskad medan orörda objekt står still.
  • Borttagna objekt lämnar flödet och animeras ut där de var medan resten glider in i luckan.
  • Omsorterade objekt glider till sina nya platser.
  • Förflyttningar som avbryts av en annan ändring behåller sin hastighet.
  • present={false} animerar ut alla objekt, och playKey spelar upp intåget igen.

Använd den för

  • En att göra-lista.
  • Filtrerade sökresultat.
  • En varukorg.

Props

PropTypStandardBeskrivning
itemsreadonly T[]—krävsDin dataarray.
getKey(item) => string | numberitem.idReturnerar en unik, stabil nyckel för ett objekt. Standard är item.id, eller själva objektet för strängar och tal.
renderItem(item, index) => ReactNodeitem.labelRitar ett objekt.
aselement'div'Elementet som renderas.
itemAselement'li' | 'div'Elementet för varje objekt.
itemClassNamestringKlass för varje objektelement; itemStyle sätter dess inline-style.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Hur objekt kommer in och lämnar.
distancenumber16Sträcka för rise och slide i pixlar.
staggernumber40Millisekunder mellan inkommande objekt.
order'forward' | 'reverse''forward'Kaskadens riktning.
presentbooleantruefalse animerar ut alla objekt och behåller layouten; true tar tillbaka dem.
initialbooleantrueSpela upp intåget när listan monteras.
playKeystring | numberAtt ändra den spelar upp intåget igen.
transitionTransitionspringÖvergång för objekt som kommer in och lämnar.
layoutTransitionTransitionspringÖvergång för objekt som glider till nya platser.

Andra props går till det renderade elementet, så className, style och händelsehanterare fungerar som vanligt.

Webb och React Native

Varje objekt får ett omslagselement (li inuti ul eller ol, annars div; itemAs ändrar det) som stylas med itemClassName.

Nycklar måste vara unika. Svep in listan i MotionHeight för att animera även dess totala höjd.

Används i de här exemplen

Sök

Skriv för att söka i dokumentationen.