Všechny komponenty

MotionReorder

Řazení seznamu nebo mřížky přetažením, s podporou klávesnice.

WebReact NativeSeznamy

Vyzkoušejte

Příprava příkladu…

Nejkratší použití

Playlist.jsx
<MotionReorder
  items={tracks}
  onItemsChange={setTracks}
  layout="list"
  renderItem={(track) => track.title}
/>;

Co za vás vyřeší

  • Ostatní položky uhýbají během tažení (reorder="live") nebo po puštění (reorder="drop").
  • Rozvržení seznamu a mřížky s columns a gap.
  • Přesuny klávesnicí na webu a akce přístupnosti v React Native.
  • Řízené přes items a onItemsChange, nebo neřízené přes defaultItems.

Použijte pro

  • Playlist.
  • Backlog podle priority.
  • Mřížka fotek.

Props

PropTypVýchozíPopis
itemsreadonly T[]Položky, když pořadí řídíte vy.
defaultItemsreadonly T[][]Počáteční položky, když pořadí drží komponenta.
onItemsChange(items, { reason, key }) => voidSpustí se s novým pořadím a informací, zda přišlo z tažení, puštění nebo klávesnice.
getKey(item) => string | numberitemVrací jedinečný klíč položky. Ve výchozím stavu samotnou položku.
renderItem(item, { index, dragging }) => ReactNodeitem.labelVykreslí položku; dostane její index a to, zda se táhne.
reorder'live' | 'drop''live'live posouvá ostatní položky během tažení; drop čeká na puštění.
layout'list' | 'grid''grid'list nebo grid.
columnsnumber3Sloupce v mřížce.
gapnumber12Mezera mezi položkami v pixelech.
disabledbooleanfalseVypne tažení.
durationnumber260Milisekundy, za které položky uhnou.
itemClassNamestringTřída pro prvek každé položky; itemStyle nastaví jeho inline styl.

Ostatní props jdou do renderovaného prvku, takže className, style a obsluhy událostí fungují jako obvykle.

Web a React Native

onItemsChange(items, { reason }) řekne, zda změna přišla z tažení, puštění nebo klávesnice.

V React Native platí stejné props a řazení je nabízeno i jako akce přístupnosti.

Hledat

Pište a hledejte v dokumentaci.