Wszystkie komponenty
MotionReorder
Przeciągnij, by zmienić kolejność listy lub siatki, z obsługą klawiatury.
SiećReact NativeListy
Wypróbuj
Przygotowywanie przykładu…
Najkrótsze użycie
Playlist.jsx<MotionReorder
items={tracks}
onItemsChange={setTracks}
layout="list"
renderItem={(track) => track.title}
/>;
Co robi za ciebie
- Pozostałe elementy robią miejsce podczas przeciągania (
reorder="live") lub po upuszczeniu (reorder="drop"). - Układy listy i siatki z
columns i gap. - Przesuwanie klawiaturą w sieci i akcje dostępności w React Native.
- Kontrolowany przez
items i onItemsChange lub niekontrolowany przez defaultItems.
Do czego służy
- Playlista.
- Backlog z priorytetami.
- Siatka zdjęć.
Props
| Prop | Typ | Domyślnie | Opis |
|---|
items | readonly T[] | | Elementy, gdy to ty kontrolujesz kolejność. |
|---|
defaultItems | readonly T[] | [] | Elementy początkowe, gdy kolejność trzyma komponent. |
|---|
onItemsChange | (items, { reason, key }) => void | | Uruchamia się z nową kolejnością i informacją, czy pochodzi z przeciągania, upuszczenia czy klawiatury. |
|---|
getKey | (item) => string | number | item | Zwraca unikalny klucz elementu. Domyślnie sam element. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | Rysuje element; dostaje jego indeks i informację, czy jest przeciągany. |
|---|
reorder | 'live' | 'drop' | 'live' | live przesuwa inne elementy podczas przeciągania; drop czeka na upuszczenie. |
|---|
layout | 'list' | 'grid' | 'grid' | list lub grid. |
|---|
columns | number | 3 | Kolumny w siatce. |
|---|
gap | number | 12 | Odstęp między elementami w pikselach. |
|---|
disabled | boolean | false | Wyłącza przeciąganie. |
|---|
duration | number | 260 | Milisekundy, w których elementy robią miejsce. |
|---|
itemClassName | string | | Klasa dla elementu każdej pozycji; itemStyle ustawia jego styl inline. |
|---|
Pozostałe props trafiają do renderowanego elementu, więc className, style i obsługa zdarzeń działają jak zwykle.