Wszystkie komponenty

MotionList

Lista z danych, która animuje tylko to, co się zmieniło.

SiećReact NativeListy

Wypróbuj

Przygotowywanie przykładu…

Najkrótsze użycie

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

Co robi za ciebie

  • Nowe elementy wchodzą z ograniczoną kaskadą, a nietknięte stoją w miejscu.
  • Usunięte elementy opuszczają przepływ i animują wyjście tam, gdzie były, a reszta przesuwa się, by zamknąć lukę.
  • Przestawione elementy płynnie przechodzą na nowe pozycje.
  • Ruchy przerwane inną zmianą zachowują prędkość.
  • present={false} animuje wyjście wszystkich elementów, a playKey odtwarza wejście ponownie.

Do czego służy

  • Lista zadań.
  • Przefiltrowane wyniki wyszukiwania.
  • Koszyk zakupów.

Props

PropTypDomyślnieOpis
itemsreadonly T[]—wymaganeTwoja tablica danych.
getKey(item) => string | numberitem.idZwraca unikalny, stabilny klucz elementu. Domyślnie item.id, a dla ciągów i liczb sam element.
renderItem(item, index) => ReactNodeitem.labelRysuje element.
aselement'div'Element do wyrenderowania.
itemAselement'li' | 'div'Element dla każdej pozycji.
itemClassNamestringKlasa dla elementu każdej pozycji; itemStyle ustawia jego styl inline.
effect'rise' | 'fade' | 'scale' | 'slide''rise'Jak elementy wchodzą i wychodzą.
distancenumber16Droga rise i slide w pikselach.
staggernumber40Milisekundy między wchodzącymi elementami.
order'forward' | 'reverse''forward'Kierunek kaskady.
presentbooleantruefalse animuje wyjście wszystkich elementów, zachowując układ; true je przywraca.
initialbooleantrueOdtwórz wejście przy montażu listy.
playKeystring | numberJej zmiana odtwarza wejście ponownie.
transitionTransitionspringPrzejście dla elementów wchodzących i wychodzących.
layoutTransitionTransitionspringPrzejście dla elementów przechodzących na nowe pozycje.

Pozostałe props trafiają do renderowanego elementu, więc className, style i obsługa zdarzeń działają jak zwykle.

Sieć i React Native

Każdy element dostaje element opakowujący (li wewnątrz ul lub ol, w przeciwnym razie div; itemAs to zmienia) stylizowany przez itemClassName.

Klucze muszą być unikalne. Owiń listę w MotionHeight, by animować też jej całkowitą wysokość.

Użyty w tych przykładach

Szukaj

Zacznij pisać, aby przeszukać dokumentację.