คอมโพเนนต์ทั้งหมด
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 | คืน key ที่ไม่ซ้ำของรายการ ค่าเริ่มต้นคือตัวรายการเอง |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | วาดรายการ ได้รับ index ของมันและสถานะว่ากำลังถูกลากหรือไม่ |
|---|
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 กำหนดสไตล์ inline ของมัน |
|---|
props อื่นจะส่งต่อไปยังองค์ประกอบที่เรนเดอร์ className, style และตัวจัดการเหตุการณ์จึงทำงานตามปกติ