Tất cả component
MotionReorder
Kéo để sắp xếp lại danh sách hoặc lưới, có hỗ trợ bàn phím.
WebReact NativeDanh sách
Thử ngay
Cách dùng ngắn nhất
Playlist.jsx<MotionReorder
items={tracks}
onItemsChange={setTracks}
layout="list"
renderItem={(track) => track.title}
/>;
Những gì nó xử lý giúp bạn
- Các mục khác tránh đường trong lúc bạn kéo (
reorder="live") hoặc khi bạn thả (reorder="drop"). - Bố cục danh sách và lưới với
columns và gap. - Di chuyển bằng bàn phím trên web, và thao tác trợ năng trên React Native.
- Có kiểm soát với
items và onItemsChange, hoặc không kiểm soát với defaultItems.
Dùng cho
- Danh sách phát.
- Danh sách việc tồn đọng theo ưu tiên.
- Lưới ảnh.
Props
| Prop | Kiểu | Mặc định | Mô tả |
|---|
items | readonly T[] | | Các mục, khi bạn kiểm soát thứ tự. |
|---|
defaultItems | readonly T[] | [] | Các mục ban đầu, khi component tự giữ thứ tự. |
|---|
onItemsChange | (items, { reason, key }) => void | | Chạy với thứ tự mới và cho biết nó đến từ kéo, thả hay bàn phím. |
|---|
getKey | (item) => string | number | item | Trả về key duy nhất cho một mục. Mặc định là chính mục đó. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | Vẽ một mục; nhận index của nó và việc nó có đang được kéo không. |
|---|
reorder | 'live' | 'drop' | 'live' | live dời các mục khác trong lúc kéo; drop chờ đến khi thả. |
|---|
layout | 'list' | 'grid' | 'grid' | list hoặc grid. |
|---|
columns | number | 3 | Số cột trong lưới. |
|---|
gap | number | 12 | Khoảng cách giữa các mục tính bằng pixel. |
|---|
disabled | boolean | false | Tắt kéo. |
|---|
duration | number | 260 | Mili giây cho các mục tránh đường. |
|---|
itemClassName | string | | Class cho từng phần tử mục; itemStyle đặt style nội tuyến của nó. |
|---|
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.