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

Đang chuẩn bị ví dụ…

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

PropKiểuMặc địnhMô tả
itemsreadonly T[]Các mục, khi bạn kiểm soát thứ tự.
defaultItemsreadonly T[][]Các mục ban đầu, khi component tự giữ thứ tự.
onItemsChange(items, { reason, key }) => voidChạ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 | numberitemTrả về key duy nhất cho một mục. Mặc định là chính mục đó.
renderItem(item, { index, dragging }) => ReactNodeitem.labelVẽ 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.
columnsnumber3Số cột trong lưới.
gapnumber12Khoảng cách giữa các mục tính bằng pixel.
disabledbooleanfalseTắt kéo.
durationnumber260Mili giây cho các mục tránh đường.
itemClassNamestringClass 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.

Web và React Native

onItemsChange(items, { reason }) cho bạn biết thay đổi đến từ kéo, thả hay bàn phím.

Trên React Native áp dụng cùng props và việc sắp xếp cũng được cung cấp dưới dạng thao tác trợ năng.

Tìm kiếm

Gõ để tìm trong tài liệu.