Semua komponen

MotionReorder

Seret untuk mengurutkan ulang daftar atau grid, dengan dukungan keyboard.

WebReact NativeDaftar

Coba

Menyiapkan contoh…

Penggunaan terpendek

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

Yang ditanganinya untuk Anda

  • Item lain menyingkir saat Anda menyeret (reorder="live") atau setelah Anda melepas (reorder="drop").
  • Tata letak daftar dan grid dengan columns dan gap.
  • Perpindahan dengan keyboard di web, dan aksi aksesibilitas di React Native.
  • Terkendali dengan items dan onItemsChange, atau tak terkendali dengan defaultItems.

Gunakan untuk

  • Playlist.
  • Backlog berprioritas.
  • Grid foto.

Props

PropTipeBawaanDeskripsi
itemsreadonly T[]Item, saat Anda mengendalikan urutannya.
defaultItemsreadonly T[][]Item awal, saat komponen yang menyimpan urutannya.
onItemsChange(items, { reason, key }) => voidBerjalan dengan urutan baru dan apakah perubahan itu berasal dari seretan, lepasan, atau keyboard.
getKey(item) => string | numberitemMengembalikan key unik untuk sebuah item. Bawaannya item itu sendiri.
renderItem(item, { index, dragging }) => ReactNodeitem.labelMenggambar item; menerima index-nya dan apakah sedang diseret.
reorder'live' | 'drop''live'live menggeser item lain selama menyeret; drop menunggu lepasan.
layout'list' | 'grid''grid'list atau grid.
columnsnumber3Kolom dalam grid.
gapnumber12Jarak antaritem dalam piksel.
disabledbooleanfalseMematikan seret.
durationnumber260Milidetik untuk item yang menyingkir.
itemClassNamestringClass untuk setiap elemen item; itemStyle mengatur gaya inline-nya.

Semua props lain diteruskan ke elemen yang dirender, jadi className, style, dan event handler bekerja seperti biasa.

Web dan React Native

onItemsChange(items, { reason }) memberi tahu apakah perubahan berasal dari seretan, lepasan, atau keyboard.

Di React Native berlaku props yang sama dan pengurutan juga ditawarkan sebagai aksi aksesibilitas.

Cari

Ketik untuk mencari dokumentasi.