Všechny komponenty
MotionReorder
Řazení seznamu nebo mřížky přetažením, s podporou klávesnice.
WebReact NativeSeznamy
Vyzkoušejte
Nejkratší použití
Playlist.jsx<MotionReorder
items={tracks}
onItemsChange={setTracks}
layout="list"
renderItem={(track) => track.title}
/>;
Co za vás vyřeší
- Ostatní položky uhýbají během tažení (
reorder="live") nebo po puštění (reorder="drop"). - Rozvržení seznamu a mřížky s
columns a gap. - Přesuny klávesnicí na webu a akce přístupnosti v React Native.
- Řízené přes
items a onItemsChange, nebo neřízené přes defaultItems.
Použijte pro
- Playlist.
- Backlog podle priority.
- Mřížka fotek.
Props
| Prop | Typ | Výchozí | Popis |
|---|
items | readonly T[] | | Položky, když pořadí řídíte vy. |
|---|
defaultItems | readonly T[] | [] | Počáteční položky, když pořadí drží komponenta. |
|---|
onItemsChange | (items, { reason, key }) => void | | Spustí se s novým pořadím a informací, zda přišlo z tažení, puštění nebo klávesnice. |
|---|
getKey | (item) => string | number | item | Vrací jedinečný klíč položky. Ve výchozím stavu samotnou položku. |
|---|
renderItem | (item, { index, dragging }) => ReactNode | item.label | Vykreslí položku; dostane její index a to, zda se táhne. |
|---|
reorder | 'live' | 'drop' | 'live' | live posouvá ostatní položky během tažení; drop čeká na puštění. |
|---|
layout | 'list' | 'grid' | 'grid' | list nebo grid. |
|---|
columns | number | 3 | Sloupce v mřížce. |
|---|
gap | number | 12 | Mezera mezi položkami v pixelech. |
|---|
disabled | boolean | false | Vypne tažení. |
|---|
duration | number | 260 | Milisekundy, za které položky uhnou. |
|---|
itemClassName | string | | Třída pro prvek každé položky; itemStyle nastaví jeho inline styl. |
|---|
Ostatní props jdou do renderovaného prvku, takže className, style a obsluhy událostí fungují jako obvykle.