Wszystkie komponenty

MotionReorder

Przeciągnij, by zmienić kolejność listy lub siatki, z obsługą klawiatury.

SiećReact NativeListy

Wypróbuj

Przygotowywanie przykładu…

Najkrótsze użycie

Playlist.jsx
<MotionReorder
  items={tracks}
  onItemsChange={setTracks}
  layout="list"
  renderItem={(track) => track.title}
/>;

Co robi za ciebie

  • Pozostałe elementy robią miejsce podczas przeciągania (reorder="live") lub po upuszczeniu (reorder="drop").
  • Układy listy i siatki z columns i gap.
  • Przesuwanie klawiaturą w sieci i akcje dostępności w React Native.
  • Kontrolowany przez items i onItemsChange lub niekontrolowany przez defaultItems.

Do czego służy

  • Playlista.
  • Backlog z priorytetami.
  • Siatka zdjęć.

Props

PropTypDomyślnieOpis
itemsreadonly T[]Elementy, gdy to ty kontrolujesz kolejność.
defaultItemsreadonly T[][]Elementy początkowe, gdy kolejność trzyma komponent.
onItemsChange(items, { reason, key }) => voidUruchamia się z nową kolejnością i informacją, czy pochodzi z przeciągania, upuszczenia czy klawiatury.
getKey(item) => string | numberitemZwraca unikalny klucz elementu. Domyślnie sam element.
renderItem(item, { index, dragging }) => ReactNodeitem.labelRysuje element; dostaje jego indeks i informację, czy jest przeciągany.
reorder'live' | 'drop''live'live przesuwa inne elementy podczas przeciągania; drop czeka na upuszczenie.
layout'list' | 'grid''grid'list lub grid.
columnsnumber3Kolumny w siatce.
gapnumber12Odstęp między elementami w pikselach.
disabledbooleanfalseWyłącza przeciąganie.
durationnumber260Milisekundy, w których elementy robią miejsce.
itemClassNamestringKlasa dla elementu każdej pozycji; itemStyle ustawia jego styl inline.

Pozostałe props trafiają do renderowanego elementu, więc className, style i obsługa zdarzeń działają jak zwykle.

Sieć i React Native

onItemsChange(items, { reason }) mówi, czy zmiana pochodzi z przeciągania, upuszczenia czy klawiatury.

W React Native obowiązują te same props, a zmiana kolejności jest też oferowana jako akcje dostępności.

Szukaj

Zacznij pisać, aby przeszukać dokumentację.