Alla komponenter
MotionReorder
Dra för att sortera om en lista eller ett rutnät, med tangentbordsstöd.
WebbReact NativeListor
Prova
Kortaste användning
Playlist.jsx<MotionReorder
items={tracks}
onItemsChange={setTracks}
layout="list"
renderItem={(track) => track.title}
/>;
Det här sköter den åt dig
- Andra objekt flyttar undan medan du drar (
reorder="live") eller när du släpper (reorder="drop"). - List- och rutnätslayouter med
columns och gap. - Tangentbordsförflyttningar på webben och tillgänglighetsåtgärder i React Native.
- Kontrollerad med
items och onItemsChange, eller okontrollerad med defaultItems.
Använd den för
- En spellista.
- En prioriterad backlog.
- Ett fotorutnät.
Props
| Prop | Typ | Standard | Beskrivning |
|---|
items | readonly T[] | | Objekten, när du styr ordningen. |
|---|
defaultItems | readonly T[] | [] | Startobjekt, när komponenten håller ordningen. |
|---|
onItemsChange | (items, { reason, key }) => void | | Körs med den nya ordningen och om den kom från en dragning, ett släpp eller tangentbordet. |
|---|
getKey | (item) => string | number | item | Returnerar en unik nyckel för ett objekt. Standard är själva objektet. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | Ritar ett objekt; får dess index och om det dras. |
|---|
reorder | 'live' | 'drop' | 'live' | live flyttar andra objekt under dragningen; drop väntar på släppet. |
|---|
layout | 'list' | 'grid' | 'grid' | list eller grid. |
|---|
columns | number | 3 | Kolumner i ett rutnät. |
|---|
gap | number | 12 | Avstånd mellan objekt i pixlar. |
|---|
disabled | boolean | false | Stänger av dragning. |
|---|
duration | number | 260 | Millisekunder för objekt som flyttar undan. |
|---|
itemClassName | string | | Klass för varje objektelement; itemStyle sätter dess inline-style. |
|---|
Andra props går till det renderade elementet, så className, style och händelsehanterare fungerar som vanligt.