كل المكوّنات
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 | النوع | الافتراضي | الوصف |
|---|
items | readonly T[] | | العناصر، حين تتحكم أنت في الترتيب. |
|---|
defaultItems | readonly T[] | [] | العناصر الأولى، حين يحتفظ المكوّن بالترتيب. |
|---|
onItemsChange | (items, { reason, key }) => void | | يعمل مع الترتيب الجديد وما إذا جاء من سحب أو إفلات أو لوحة المفاتيح. |
|---|
getKey | (item) => string | number | item | تعيد مفتاحًا فريدًا لعنصر. افتراضيًا العنصر نفسه. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | يرسم عنصرًا؛ ويتلقى فهرسه وما إذا كان يُسحب. |
|---|
reorder | 'live' | 'drop' | 'live' | يحرّك live العناصر الأخرى أثناء السحب؛ وينتظر drop الإفلات. |
|---|
layout | 'list' | 'grid' | 'grid' | list أو grid. |
|---|
columns | number | 3 | الأعمدة في الشبكة. |
|---|
gap | number | 12 | المسافة بين العناصر بالبكسل. |
|---|
disabled | boolean | false | يعطّل السحب. |
|---|
duration | number | 260 | مللي ثوانٍ لتنحّي العناصر. |
|---|
itemClassName | string | | صنف لعنصر كل بند؛ ويضبط itemStyle نمطه المضمّن. |
|---|
تذهب props الأخرى إلى العنصر المعروض، فتعمل className وstyle ومعالجات الأحداث كالمعتاد.