Alle Komponenten
MotionReorder
Zum Umsortieren einer Liste oder eines Rasters ziehen, mit Tastaturunterstützung.
WebReact NativeListen
Ausprobieren
Beispiel wird vorbereitet…
Kürzeste Nutzung
Playlist.jsx<MotionReorder
items={tracks}
onItemsChange={setTracks}
layout="list"
renderItem={(track) => track.title}
/>;
Was sie dir abnimmt
- Andere Elemente weichen beim Ziehen (
reorder="live") oder beim Ablegen (reorder="drop") aus. - Listen- und Raster-Layouts mit
columns und gap. - Tastaturbewegungen im Web und Barrierefreiheitsaktionen unter React Native.
- Kontrolliert mit
items und onItemsChange oder unkontrolliert mit defaultItems.
Gut für
- Eine Playlist.
- Ein priorisiertes Backlog.
- Ein Fotoraster.
props
| Prop | Typ | Standard | Beschreibung |
|---|
items | readonly T[] | | Die Elemente, wenn du die Reihenfolge kontrollierst. |
|---|
defaultItems | readonly T[] | [] | Startelemente, wenn die Komponente die Reihenfolge verwaltet. |
|---|
onItemsChange | (items, { reason, key }) => void | | Läuft mit der neuen Reihenfolge und ob sie vom Ziehen, Ablegen oder von der Tastatur kam. |
|---|
getKey | (item) => string | number | item | Gibt einen eindeutigen Key für ein Element zurück. Standard ist das Element selbst. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | Zeichnet ein Element; erhält seinen Index und ob es gerade gezogen wird. |
|---|
reorder | 'live' | 'drop' | 'live' | live bewegt andere Elemente beim Ziehen; drop wartet auf das Ablegen. |
|---|
layout | 'list' | 'grid' | 'grid' | list oder grid. |
|---|
columns | number | 3 | Spalten in einem Raster. |
|---|
gap | number | 12 | Abstand zwischen Elementen in Pixeln. |
|---|
disabled | boolean | false | Schaltet das Ziehen aus. |
|---|
duration | number | 260 | Millisekunden für ausweichende Elemente. |
|---|
itemClassName | string | | Klasse für jedes Eintragselement; itemStyle setzt seinen Inline-Style. |
|---|
Weitere props gehen an das gerenderte Element, also funktionieren className, style und Event-Handler wie gewohnt.