Alla komponenter

MotionReorder

Dra för att sortera om en lista eller ett rutnät, med tangentbordsstöd.

WebbReact NativeListor

Prova

Förbereder exemplet…

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

PropTypStandardBeskrivning
itemsreadonly T[]Objekten, när du styr ordningen.
defaultItemsreadonly T[][]Startobjekt, när komponenten håller ordningen.
onItemsChange(items, { reason, key }) => voidKörs med den nya ordningen och om den kom från en dragning, ett släpp eller tangentbordet.
getKey(item) => string | numberitemReturnerar en unik nyckel för ett objekt. Standard är själva objektet.
renderItem(item, { index, dragging }) => ReactNodeitem.labelRitar 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.
columnsnumber3Kolumner i ett rutnät.
gapnumber12Avstånd mellan objekt i pixlar.
disabledbooleanfalseStänger av dragning.
durationnumber260Millisekunder för objekt som flyttar undan.
itemClassNamestringKlass 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.

Webb och React Native

onItemsChange(items, { reason }) berättar om en ändring kom från en dragning, ett släpp eller tangentbordet.

I React Native gäller samma props, och omsortering erbjuds också som tillgänglighetsåtgärder.

Sök

Skriv för att söka i dokumentationen.