Toate componentele
MotionReorder
Trageți pentru a reordona o listă sau o grilă, cu suport de tastatură.
WebReact NativeListe
Încercați
Cea mai scurtă utilizare
Playlist.jsx<MotionReorder
items={tracks}
onItemsChange={setTracks}
layout="list"
renderItem={(track) => track.title}
/>;
Ce rezolvă în locul dumneavoastră
- Celelalte elemente se dau la o parte cât trageți (
reorder="live") sau după ce eliberați (reorder="drop"). - Layouturi de listă și grilă cu
columns și gap. - Mutări cu tastatura pe web și acțiuni de accesibilitate în React Native.
- Controlat cu
items și onItemsChange sau necontrolat cu defaultItems.
Folosiți-o pentru
- Un playlist.
- Un backlog prioritizat.
- O grilă de fotografii.
Props
| Prop | Tip | Implicit | Descriere |
|---|
items | readonly T[] | | Elementele, când controlați dumneavoastră ordinea. |
|---|
defaultItems | readonly T[] | [] | Elementele de pornire, când componenta păstrează ordinea. |
|---|
onItemsChange | (items, { reason, key }) => void | | Rulează cu noua ordine și cu sursa ei: tragere, eliberare sau tastatură. |
|---|
getKey | (item) => string | number | item | Returnează un key unic pentru un element. Implicit, elementul însuși. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | Desenează un element; primește indexul și dacă este tras. |
|---|
reorder | 'live' | 'drop' | 'live' | live mută celelalte elemente în timpul tragerii; drop așteaptă eliberarea. |
|---|
layout | 'list' | 'grid' | 'grid' | list sau grid. |
|---|
columns | number | 3 | Coloane într-o grilă. |
|---|
gap | number | 12 | Spațiul dintre elemente, în pixeli. |
|---|
disabled | boolean | false | Dezactivează tragerea. |
|---|
duration | number | 260 | Milisecunde pentru elementele care se dau la o parte. |
|---|
itemClassName | string | | Clasă pentru fiecare element din listă; itemStyle îi setează stilul inline. |
|---|
Celelalte props merg la elementul randat, așa că className, style și handlerele de evenimente funcționează ca de obicei.