Todos los componentes

MotionReorder

Arrastra para reordenar una lista o una cuadrícula, con soporte de teclado.

WebReact NativeListas

Pruébalo

Preparando el ejemplo…

Uso mínimo

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

Lo que resuelve por ti

  • Los demás elementos se apartan mientras arrastras (reorder="live") o al soltar (reorder="drop").
  • Layouts de lista y cuadrícula con columns y gap.
  • Movimientos con teclado en la web y acciones de accesibilidad en React Native.
  • Controlado con items y onItemsChange, o no controlado con defaultItems.

Úsalo para

  • Una lista de reproducción.
  • Un backlog priorizado.
  • Una cuadrícula de fotos.

Props

PropTipoPor defectoDescripción
itemsreadonly T[]Los elementos, cuando tú controlas el orden.
defaultItemsreadonly T[][]Elementos iniciales, cuando el componente guarda el orden.
onItemsChange(items, { reason, key }) => voidSe ejecuta con el nuevo orden y con si vino de un arrastre, de soltar o del teclado.
getKey(item) => string | numberitemDevuelve una key única para un elemento. Por defecto, el propio elemento.
renderItem(item, { index, dragging }) => ReactNodeitem.labelDibuja un elemento; recibe su índice y si se está arrastrando.
reorder'live' | 'drop''live'live mueve los demás elementos mientras arrastras; drop espera a que sueltes.
layout'list' | 'grid''grid'list o grid.
columnsnumber3Columnas de una cuadrícula.
gapnumber12Espacio entre elementos en píxeles.
disabledbooleanfalseDesactiva el arrastre.
durationnumber260Milisegundos para los elementos que se apartan.
itemClassNamestringClase para el elemento de cada ítem; itemStyle fija su estilo en línea.

Las demás props van al elemento renderizado, así que className, style y los manejadores de eventos funcionan como siempre.

Web y React Native

onItemsChange(items, { reason }) te dice si el cambio vino de un arrastre, de soltar o del teclado.

En React Native se aplican las mismas props y la reordenación también se ofrece como acciones de accesibilidad.

Buscar

Escribe para buscar en la documentación.