Tất cả component
MotionPager
Các trang vuốt được từ dữ liệu: giới thiệu, băng chuyền và bảng tab.
WebReact NativeLựa chọn và phân trang
Thử ngay
Cách dùng ngắn nhất
Onboarding.jsx<MotionPager
items={slides}
index={page}
onIndexChange={setPage}
gap={16}
renderItem={(slide) => <Slide slide={slide} />}
/>;
Những gì nó xử lý giúp bạn
- Trang bám theo thao tác vuốt và kéo chuột, có lực cản ở hai đầu và dừng theo tốc độ bạn thả.
- Một cú hất luôn lật một trang, và một cử chỉ không bao giờ lật quá một trang.
- Cuộn ngang trên trackpad cũng lật trang, và phần quán tính phía sau bị bỏ qua.
- Phím mũi tên, Home và End hoạt động khi pager được focus, và cuộn dọc vẫn hoạt động.
- Các trang không phải trang hiện tại đều bị vô hiệu.
Dùng cho
- Luồng giới thiệu.
- Băng chuyền ảnh.
- Bảng tab vuốt được, ghép với
MotionHighlight.
Props
| Prop | Kiểu | Mặc định | Mô tả |
|---|
items | readonly T[] | —bắt buộc | Mảng dữ liệu của bạn. |
|---|
index | number | | Trang đang hiển thị. Bỏ trống để pager tự quản lý. |
|---|
defaultIndex | number | 0 | Trang bắt đầu khi index không được kiểm soát. |
|---|
onIndexChange | (index, item) => void | | Chạy với index và mục ngay khi cử chỉ vuốt, phím hoặc con lăn dừng lại. |
|---|
getKey | (item) => string | number | item.id | Trả về key duy nhất, ổn định cho một mục. Mặc định là item.id, hoặc chính mục đó với chuỗi và số. |
|---|
renderItem | (item, { index, active }) => ReactNode | item.label | Vẽ một trang; nhận index của nó và việc nó có đang hiện hành không. |
|---|
gap | number | 0 | Khoảng cách giữa các trang tính bằng pixel. |
|---|
itemClassName | string | | Class cho từng phần tử mục; itemStyle đặt style nội tuyến của nó. |
|---|
transition | Transition | spring | Đường cong timing { duration, easing } hoặc lò xo { tempo: 'spring', spring }. Lò xo giữ đà khi bị ngắt. |
|---|
Các props khác được chuyển tới phần tử được render, nên className, style và trình xử lý sự kiện hoạt động như bình thường.
Được dùng trong các ví dụ này