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

MotionList

รายการจากข้อมูลที่เคลื่อนไหวเฉพาะส่วนที่เปลี่ยน

เว็บReact Nativeรายการ

ลองดู

กำลังเตรียมตัวอย่าง…

การใช้งานที่สั้นที่สุด

Todos.jsx
<MotionList as="ul" items={todos} renderItem={(todo) => <TodoRow todo={todo} />} />;

สิ่งที่มันจัดการให้คุณ

  • รายการใหม่เข้ามาแบบไล่ลำดับที่จำกัดเวลา ขณะที่รายการที่ไม่เปลี่ยนอยู่นิ่ง
  • รายการที่ถูกลบจะออกจากโฟลว์และเคลื่อนไหวออกที่เดิม ขณะที่รายการที่เหลือเลื่อนเข้าช่องว่าง
  • รายการที่ถูกจัดลำดับใหม่เลื่อนไปยังตำแหน่งใหม่อย่างนุ่มนวล
  • การเคลื่อนที่ที่ถูกขัดด้วยการเปลี่ยนแปลงอื่นจะรักษาความเร็วไว้
  • present={false} ทำให้ทุกรายการเคลื่อนไหวออก และ playKey เล่นการเข้าใหม่

ใช้สำหรับ

  • รายการสิ่งที่ต้องทำ
  • ผลการค้นหาที่กรองแล้ว
  • ตะกร้าสินค้า

Props

Propชนิดค่าเริ่มต้นคำอธิบาย
itemsreadonly T[]—จำเป็นอาร์เรย์ข้อมูลของคุณ
getKey(item) => string | numberitem.idคืน key ที่ไม่ซ้ำและคงที่ของรายการ ค่าเริ่มต้นคือ item.id หรือตัวรายการเองสำหรับสตริงและตัวเลข
renderItem(item, index) => ReactNodeitem.labelวาดรายการ
aselement'div'องค์ประกอบที่จะเรนเดอร์
itemAselement'li' | 'div'องค์ประกอบของแต่ละรายการ
itemClassNamestringคลาสของแต่ละองค์ประกอบรายการ itemStyle กำหนดสไตล์ inline ของมัน
effect'rise' | 'fade' | 'scale' | 'slide''rise'วิธีที่รายการเข้าและออก
distancenumber16ระยะเคลื่อนของ rise และ slide เป็นพิกเซล
staggernumber40มิลลิวินาทีระหว่างรายการที่เข้ามา
order'forward' | 'reverse''forward'ทิศทางของการไล่ลำดับ
presentbooleantruefalse ทำให้ทุกรายการเคลื่อนไหวออกโดยคงเลย์เอาต์ไว้ true นำกลับมา
initialbooleantrueเล่นการเข้าเมื่อรายการ mount
playKeystring | numberการเปลี่ยนค่านี้จะเล่นการเข้าใหม่
transitionTransitionspringทรานซิชันสำหรับรายการที่เข้าและออก
layoutTransitionTransitionspringทรานซิชันสำหรับรายการที่เลื่อนไปตำแหน่งใหม่

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

เว็บและ React Native

แต่ละรายการมีองค์ประกอบห่อ (li ภายใน ul หรือ ol นอกนั้นเป็น div และ itemAs เปลี่ยนได้) ที่ปรับสไตล์ด้วย itemClassName

key ต้องไม่ซ้ำ ห่อรายการด้วย MotionHeight เพื่อให้ความสูงรวมเคลื่อนไหวด้วย

ใช้ในตัวอย่างเหล่านี้

ค้นหา

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