Semua komponen

MotionHighlight

Tab, kontrol bersegmen, atau navigasi dari data, dengan satu sorotan yang berpindah ke pilihan.

WebReact NativePilihan dan halaman

Coba

Menyiapkan contoh…

Penggunaan terpendek

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

Yang ditanganinya untuk Anda

  • Satu sorotan berpindah dan berubah ukuran antar item; beri gaya dengan highlightClassName.
  • Item berasal dari items, key dari getKey, dan label dari renderItem.
  • hover membuatnya mengikuti pointer dan kembali ke pilihan.
  • Item bisa membungkus ke beberapa baris dan sorotan mengikutinya.
  • Pemuatan font dan perubahan tata letak diukur ulang secara otomatis.

Gunakan untuk

  • Tab halaman.
  • Bilah filter.
  • Kontrol bersegmen di formulir pengaturan.

Props

PropTipeBawaanDeskripsi
itemsreadonly T[]—wajibArray data Anda.
valuekey | null—wajibKey item yang disorot; null menyembunyikan sorotan.
onValueChange(key, item) => voidBerjalan dengan key dan item saat sebuah item ditekan.
getKey(item) => string | numberitem.idMengembalikan key yang unik dan stabil untuk sebuah item. Bawaannya item.id, atau item itu sendiri untuk string dan angka.
renderItem(item, { selected, index }) => ReactNodeitem.labelMenggambar item; menerima apakah item itu terpilih.
hoverbooleanfalseMengikuti pointer di atas item dan kembali ke value saat pointer pergi (web).
itemAselement'button'Elemen untuk setiap item.
itemClassNamestringClass untuk setiap elemen item; itemStyle mengatur gaya inline-nya.
highlightClassNamestringClass untuk sorotan; highlightStyle mengatur gaya inline-nya.
transitionTransitionspringKurva timing { duration, easing } atau pegas { tempo: 'spring', spring }. Pegas mempertahankan momentumnya saat diinterupsi.

Semua props lain diteruskan ke elemen yang dirender, jadi className, style, dan event handler bekerja seperti biasa.

Web dan React Native

Setiap item dirender sebagai button secara bawaan (itemAs mengubahnya); menekannya memanggil onValueChange(key, item).

Di React Native, item berupa Pressable; posisi berjalan dengan driver native dan ukuran pada view bersarang yang digerakkan JavaScript.

Dipakai di contoh-contoh ini

Cari

Ketik untuk mencari dokumentasi.