Alle komponenter
MotionReorder
Træk for at omsortere en liste eller et gitter, med tastaturunderstøttelse.
WebReact NativeLister
Prøv det
Korteste brug
Playlist.jsx<MotionReorder
items={tracks}
onItemsChange={setTracks}
layout="list"
renderItem={(track) => track.title}
/>;
Det klarer den for dig
- Andre elementer rykker til side, mens du trækker (
reorder="live"), eller når du slipper (reorder="drop"). - Liste- og gitterlayout med
columns og gap. - Tastaturflytninger på nettet og tilgængelighedshandlinger i React Native.
- Kontrolleret med
items og onItemsChange eller ukontrolleret med defaultItems.
Brug den til
- En playliste.
- En prioriteret backlog.
- Et fotogitter.
Props
| Prop | Type | Standard | Beskrivelse |
|---|
items | readonly T[] | | Elementerne, når du styrer rækkefølgen. |
|---|
defaultItems | readonly T[] | [] | Startelementer, når komponenten holder rækkefølgen. |
|---|
onItemsChange | (items, { reason, key }) => void | | Kører med den nye rækkefølge, og om den kom fra et træk, et slip eller tastaturet. |
|---|
getKey | (item) => string | number | item | Returnerer en unik nøgle for et element. Standard er selve elementet. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | Tegner et element; får dets indeks, og om det trækkes. |
|---|
reorder | 'live' | 'drop' | 'live' | live flytter andre elementer under trækket; drop venter på slippet. |
|---|
layout | 'list' | 'grid' | 'grid' | list eller grid. |
|---|
columns | number | 3 | Kolonner i et gitter. |
|---|
gap | number | 12 | Afstand mellem elementer i pixels. |
|---|
disabled | boolean | false | Slår træk fra. |
|---|
duration | number | 260 | Millisekunder for elementer, der rykker til side. |
|---|
itemClassName | string | | Klasse for hvert punkts element; itemStyle sætter dets inline-style. |
|---|
Andre props går til det renderede element, så className, style og event handlers virker som normalt.