Alle komponenter

MotionReorder

Træk for at omsortere en liste eller et gitter, med tastaturunderstøttelse.

WebReact NativeLister

Prøv det

Forbereder eksemplet…

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

PropTypeStandardBeskrivelse
itemsreadonly T[]Elementerne, når du styrer rækkefølgen.
defaultItemsreadonly T[][]Startelementer, når komponenten holder rækkefølgen.
onItemsChange(items, { reason, key }) => voidKører med den nye rækkefølge, og om den kom fra et træk, et slip eller tastaturet.
getKey(item) => string | numberitemReturnerer en unik nøgle for et element. Standard er selve elementet.
renderItem(item, { index, dragging }) => ReactNodeitem.labelTegner 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.
columnsnumber3Kolonner i et gitter.
gapnumber12Afstand mellem elementer i pixels.
disabledbooleanfalseSlår træk fra.
durationnumber260Millisekunder for elementer, der rykker til side.
itemClassNamestringKlasse 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.

Web og React Native

onItemsChange(items, { reason }) fortæller, om en ændring kom fra et træk, et slip eller tastaturet.

I React Native gælder de samme props, og omsortering tilbydes også som tilgængelighedshandlinger.

Søg

Skriv for at søge i dokumentationen.