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
<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, aplayKeyodtwarza wejście ponownie.
Do czego służy
- Lista zadań.
- Przefiltrowane wyniki wyszukiwania.
- Koszyk zakupów.
Props
| Prop | Typ | Domyślnie | Opis |
|---|---|---|---|
items | readonly T[] | —wymagane | Twoja tablica danych. |
getKey | (item) => string | number | item.id | Zwraca unikalny, stabilny klucz elementu. Domyślnie item.id, a dla ciągów i liczb sam element. |
renderItem | (item, index) => ReactNode | item.label | Rysuje element. |
as | element | 'div' | Element do wyrenderowania. |
itemAs | element | 'li' | 'div' | Element dla każdej pozycji. |
itemClassName | string | Klasa dla elementu każdej pozycji; itemStyle ustawia jego styl inline. | |
effect | 'rise' | 'fade' | 'scale' | 'slide' | 'rise' | Jak elementy wchodzą i wychodzą. |
distance | number | 16 | Droga rise i slide w pikselach. |
stagger | number | 40 | Milisekundy między wchodzącymi elementami. |
order | 'forward' | 'reverse' | 'forward' | Kierunek kaskady. |
present | boolean | true | false animuje wyjście wszystkich elementów, zachowując układ; true je przywraca. |
initial | boolean | true | Odtwórz wejście przy montażu listy. |
playKey | string | number | Jej zmiana odtwarza wejście ponownie. | |
transition | Transition | spring | Przejście dla elementów wchodzących i wychodzących. |
layoutTransition | Transition | spring | Przejś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
- Odpowiedź w czaciePodpowiedzi, które się zwijają, odpowiedź strumieniowana w równym tempie i zmieniająca się linia statusu.
MotionStreamMotionListMotionSwapMotionHeight - Podsumowanie zamówieniaIlości, sumy pozycji i suma całkowita przewijają się, gdy zmienia się koszyk; komunikat o kuponie wchodzi i odchodzi; płatność wymaga świadomego przytrzymania.
MotionListMotionNumberMotionPresenceMotionHold - Skrzynka odbiorczaKarty filtrów z licznikami na żywo, wiersze do odrzucenia przesunięciem i lista, która zamyka lukę.
MotionHighlightMotionListMotionSwipeMotionNumber