Всички компоненти

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Връща уникален ключ за елемент. По подразбиране — самия елемент.
renderItem(item, { index, dragging }) => ReactNodeitem.labelРисува елемент; получава индекса му и дали се влачи.
reorder'live' | 'drop''live'live мести другите елементи по време на влачене; drop чака пускането.
layout'list' | 'grid''grid'list или grid.
columnsnumber3Колони в мрежа.
gapnumber12Разстояние между елементите в пиксели.
disabledbooleanfalseИзключва влаченето.
durationnumber260Милисекунди, за които елементите се отместват.
itemClassNamestringКлас за елемента на всяка позиция; itemStyle задава вградения му стил.

Другите props отиват към рендерирания елемент, така че className, style и обработчиците на събития работят както обикновено.

Уеб и React Native

onItemsChange(items, { reason }) казва дали промяната идва от влачене, пускане или клавиатура.

В React Native важат същите props, а пренареждането се предлага и като действия за достъпност.

Търсене

Пишете, за да търсите в документацията.