Semua komponen
MotionReorder
Seret untuk mengurutkan ulang daftar atau grid, dengan dukungan keyboard.
WebReact NativeDaftar
Coba
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
| Prop | Tipe | Bawaan | Deskripsi |
|---|
items | readonly T[] | | Item, saat Anda mengendalikan urutannya. |
|---|
defaultItems | readonly T[] | [] | Item awal, saat komponen yang menyimpan urutannya. |
|---|
onItemsChange | (items, { reason, key }) => void | | Berjalan dengan urutan baru dan apakah perubahan itu berasal dari seretan, lepasan, atau keyboard. |
|---|
getKey | (item) => string | number | item | Mengembalikan key unik untuk sebuah item. Bawaannya item itu sendiri. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | Menggambar 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. |
|---|
columns | number | 3 | Kolom dalam grid. |
|---|
gap | number | 12 | Jarak antaritem dalam piksel. |
|---|
disabled | boolean | false | Mematikan seret. |
|---|
duration | number | 260 | Milidetik untuk item yang menyingkir. |
|---|
itemClassName | string | | Class 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.