คอมโพเนนต์ทั้งหมด

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คืน key ที่ไม่ซ้ำของรายการ ค่าเริ่มต้นคือตัวรายการเอง
renderItem(item, { index, dragging }) => ReactNodeitem.labelวาดรายการ ได้รับ index ของมันและสถานะว่ากำลังถูกลากหรือไม่
reorder'live' | 'drop''live'live เลื่อนรายการอื่นขณะลาก drop รอจนปล่อย
layout'list' | 'grid''grid'list หรือ grid
columnsnumber3คอลัมน์ในตาราง
gapnumber12ระยะห่างระหว่างรายการเป็นพิกเซล
disabledbooleanfalseปิดการลาก
durationnumber260มิลลิวินาทีสำหรับรายการที่หลบทาง
itemClassNamestringคลาสของแต่ละองค์ประกอบรายการ itemStyle กำหนดสไตล์ inline ของมัน

props อื่นจะส่งต่อไปยังองค์ประกอบที่เรนเดอร์ className, style และตัวจัดการเหตุการณ์จึงทำงานตามปกติ

เว็บและ React Native

onItemsChange(items, { reason }) บอกว่าการเปลี่ยนมาจากการลาก การปล่อย หรือคีย์บอร์ด

บน React Native ใช้ props เดียวกัน และการจัดลำดับยังมีให้เป็นการกระทำเพื่อการเข้าถึงด้วย

ค้นหา

พิมพ์เพื่อค้นหาเอกสาร