Las páginas siguen los deslizamientos y los arrastres con el ratón, ofrecen resistencia en los extremos y se asientan con la velocidad con la que sueltas.
Un gesto rápido siempre pasa una página, y un solo gesto nunca pasa más de una.
El scroll horizontal del trackpad también pasa páginas, y se ignora su inercia final.
Las flechas, Inicio y Fin funcionan cuando el paginador tiene el foco, y el scroll vertical sigue funcionando.
Las páginas que no están activas son inertes.
Úsalo para
Un flujo de onboarding.
Un carrusel de fotos.
Paneles de pestañas deslizables junto con MotionHighlight.
Props
Prop
Tipo
Por defecto
Descripción
items
readonly T[]
—obligatoria
Tu array de datos.
index
number
La página que se muestra. Omítela para que el paginador la gestione.
defaultIndex
number
0
Página inicial cuando index no está controlado.
onIndexChange
(index, item) => void
Se ejecuta con el índice y el elemento en cuanto un deslizamiento, una tecla o la rueda se asientan.
getKey
(item) => string | number
item.id
Devuelve una key única y estable para un elemento. Por defecto item.id, o el propio elemento si es una cadena o un número.
renderItem
(item, { index, active }) => ReactNode
item.label
Dibuja una página; recibe su índice y si está activa.
gap
number
0
Espacio entre páginas en píxeles.
itemClassName
string
Clase para el elemento de cada ítem; itemStyle fija su estilo en línea.
transition
Transition
spring
Una curva de tiempo { duration, easing } o un resorte { tempo: 'spring', spring }. Los resortes conservan su impulso cuando se interrumpen.
Las demás props van al elemento renderizado, así que className, style y los manejadores de eventos funcionan como siempre.
Web y React Native
index puede controlarse (onIndexChange(index, item) informa de cada asentamiento) o dejarse al paginador con defaultIndex.
El mismo componente y las mismas props funcionan en React Native.