كل المكوّنات

MotionReorder

اسحب لإعادة ترتيب قائمة أو شبكة، مع دعم لوحة المفاتيح.

الويبReact Nativeالقوائم

جرّبه

جارٍ تجهيز المثال…

أقصر استخدام

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

ما يتولّاه عنك

  • تتنحّى العناصر الأخرى أثناء السحب (reorder="live") أو عند الإفلات (reorder="drop").
  • تخطيطات قائمة وشبكة مع columns وgap.
  • تحريك بلوحة المفاتيح على الويب، وإجراءات سهولة الوصول في React Native.
  • متحكَّم به عبر items وonItemsChange، أو غير متحكَّم به عبر defaultItems.

استخدمه لـ

  • قائمة تشغيل.
  • قائمة أعمال مرتّبة حسب الأولوية.
  • شبكة صور.

Props

Propالنوعالافتراضيالوصف
itemsreadonly T[]العناصر، حين تتحكم أنت في الترتيب.
defaultItemsreadonly T[][]العناصر الأولى، حين يحتفظ المكوّن بالترتيب.
onItemsChange(items, { reason, key }) => voidيعمل مع الترتيب الجديد وما إذا جاء من سحب أو إفلات أو لوحة المفاتيح.
getKey(item) => string | numberitemتعيد مفتاحًا فريدًا لعنصر. افتراضيًا العنصر نفسه.
renderItem(item, { index, dragging }) => ReactNodeitem.labelيرسم عنصرًا؛ ويتلقى فهرسه وما إذا كان يُسحب.
reorder'live' | 'drop''live'يحرّك live العناصر الأخرى أثناء السحب؛ وينتظر drop الإفلات.
layout'list' | 'grid''grid'list أو grid.
columnsnumber3الأعمدة في الشبكة.
gapnumber12المسافة بين العناصر بالبكسل.
disabledbooleanfalseيعطّل السحب.
durationnumber260مللي ثوانٍ لتنحّي العناصر.
itemClassNamestringصنف لعنصر كل بند؛ ويضبط itemStyle نمطه المضمّن.

تذهب props الأخرى إلى العنصر المعروض، فتعمل className وstyle ومعالجات الأحداث كالمعتاد.

الويب وReact Native

يخبرك onItemsChange(items, { reason }) إن كان التغيير قد جاء من سحب أو إفلات أو لوحة المفاتيح.

في React Native تنطبق props نفسها، وتُقدَّم إعادة الترتيب أيضًا كإجراءات سهولة الوصول.

بحث

اكتب للبحث في التوثيق.