Alle componenten
MotionReorder
Sleep om een lijst of raster te herordenen, met toetsenbordondersteuning.
WebReact NativeLijsten
Probeer het
Kortste gebruik
Playlist.jsx<MotionReorder
items={tracks}
onItemsChange={setTracks}
layout="list"
renderItem={(track) => track.title}
/>;
Wat het voor je regelt
- Andere items gaan opzij terwijl je sleept (
reorder="live") of zodra je loslaat (reorder="drop"). - Lijst- en rasterlayouts met
columns en gap. - Verplaatsen met het toetsenbord op het web, en toegankelijkheidsacties in React Native.
- Gecontroleerd met
items en onItemsChange, of ongecontroleerd met defaultItems.
Gebruik het voor
- Een afspeellijst.
- Een geprioriteerde backlog.
- Een fotoraster.
Props
| Prop | Type | Standaard | Beschrijving |
|---|
items | readonly T[] | | De items, als jij de volgorde beheert. |
|---|
defaultItems | readonly T[] | [] | Startitems, als het component de volgorde bijhoudt. |
|---|
onItemsChange | (items, { reason, key }) => void | | Draait met de nieuwe volgorde en of die kwam van slepen, loslaten of het toetsenbord. |
|---|
getKey | (item) => string | number | item | Geeft een unieke key voor een item terug. Standaard het item zelf. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | Tekent een item; krijgt de index en of het wordt gesleept. |
|---|
reorder | 'live' | 'drop' | 'live' | live verplaatst andere items tijdens het slepen; drop wacht op het loslaten. |
|---|
layout | 'list' | 'grid' | 'grid' | list of grid. |
|---|
columns | number | 3 | Kolommen in een raster. |
|---|
gap | number | 12 | Ruimte tussen items in pixels. |
|---|
disabled | boolean | false | Zet slepen uit. |
|---|
duration | number | 260 | Milliseconden voor items die opzij gaan. |
|---|
itemClassName | string | | Class voor elk item-element; itemStyle zet de inline style. |
|---|
Andere props gaan naar het gerenderde element, dus className, style en event handlers werken zoals gewoonlijk.