Всички компоненти

MotionHighlight

Раздели, сегментирани превключватели или навигация от данни, с едно подчертаване, което се мести към избора.

УебReact NativeИзбор и страници

Опитайте

Подготовка на примера…

Най-кратка употреба

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

С какво се справя вместо вас

  • Едно подчертаване се мести и сменя размера си между елементите; стилизирайте го с highlightClassName.
  • Елементите идват от items, ключовете от getKey, а етикетите от renderItem.
  • hover го кара да следва показалеца и да се връща към избора.
  • Елементите могат да се пренасят на няколко реда и подчертаването ги следва.
  • Зареждането на шрифтове и промените в оформлението се измерват отново автоматично.

Подходящ за

  • Раздели на страница.
  • Лента с филтри.
  • Сегментиран превключвател във формуляр с настройки.

Props

PropТипПо подразбиранеОписание
itemsreadonly T[]—задължителноВашият масив с данни.
valuekey | null—задължителноКлюч на подчертания елемент; null скрива подчертаването.
onValueChange(key, item) => voidИзпълнява се с ключа и елемента при натискане на елемент.
getKey(item) => string | numberitem.idВръща уникален стабилен ключ за елемент. По подразбиране item.id, а за низове и числа — самия елемент.
renderItem(item, { selected, index }) => ReactNodeitem.labelРисува елемент; получава дали е избран.
hoverbooleanfalseСледвай показалеца над елементите и се върни към value при излизане (уеб).
itemAselement'button'Елементът за всяка позиция.
itemClassNamestringКлас за елемента на всяка позиция; itemStyle задава вградения му стил.
highlightClassNamestringКлас за подчертаването; highlightStyle задава вградения му стил.
transitionTransitionspringКрива на timing { duration, easing } или пружина { tempo: 'spring', spring }. Пружините запазват инерцията си при прекъсване.

Другите props отиват към рендерирания елемент, така че className, style и обработчиците на събития работят както обикновено.

Уеб и React Native

Всеки елемент по подразбиране се рендерира като button (itemAs го променя); натискането извиква onValueChange(key, item).

В React Native елементите са Pressable; позицията работи на нативния драйвер, а размерът — на вложен view, управляван от JavaScript.

Използван в тези примери

Търсене

Пишете, за да търсите в документацията.