Alle componenten

MotionHighlight

Tabs, segmented controls of navigatie uit data, met één markering die naar de selectie verhuist.

WebReact NativeSelectie en pagina's

Probeer het

Voorbeeld voorbereiden…

Kortste gebruik

Tabs.jsx
<MotionHighlight
  items={['Overview', 'Activity', 'Settings']}
  value={tab}
  onValueChange={setTab}
  hover
/>;

Wat het voor je regelt

  • Eén markering beweegt en verandert van grootte tussen items; geef haar stijl met highlightClassName.
  • Items komen uit items, keys uit getKey en labels uit renderItem.
  • hover laat haar de aanwijzer volgen en terugkeren naar de selectie.
  • Items kunnen over meerdere rijen doorlopen en de markering volgt ze.
  • Het laden van lettertypen en layoutwijzigingen worden automatisch opnieuw gemeten.

Gebruik het voor

  • Paginatabs.
  • Een filterbalk.
  • Een segmented control in een instellingenformulier.

Props

PropTypeStandaardBeschrijving
itemsreadonly T[]—verplichtJe data-array.
valuekey | null—verplichtKey van het gemarkeerde item; null verbergt de markering.
onValueChange(key, item) => voidDraait met de key en het item als een item wordt ingedrukt.
getKey(item) => string | numberitem.idGeeft een unieke, stabiele key voor een item terug. Standaard item.id, of het item zelf bij strings en getallen.
renderItem(item, { selected, index }) => ReactNodeitem.labelTekent een item; krijgt mee of het geselecteerd is.
hoverbooleanfalseVolg de aanwijzer over items en keer bij verlaten terug naar value (web).
itemAselement'button'Het element voor elk item.
itemClassNamestringClass voor elk item-element; itemStyle zet de inline style.
highlightClassNamestringClass voor de markering; highlightStyle zet de inline style.
transitionTransitionspringEen timingcurve { duration, easing } of een veer { tempo: 'spring', spring }. Veren behouden hun momentum als ze worden onderbroken.

Andere props gaan naar het gerenderde element, dus className, style en event handlers werken zoals gewoonlijk.

Web en React Native

Elk item rendert standaard als button (itemAs verandert dat); erop drukken roept onValueChange(key, item) aan.

In React Native zijn items Pressable's; de positie loopt op de native driver en de grootte op een geneste view die door JavaScript wordt aangestuurd.

Gebruikt in deze voorbeelden

Zoeken

Typ om de documentatie te doorzoeken.