Saya memiliki sidenav dengan sekelompok tim bola basket. Jadi saya ingin menampilkan sesuatu yang berbeda untuk setiap tim ketika salah satu dari mereka diarahkan. Juga, saya menggunakan Reactjs jadi jika saya bisa memiliki variabel yang bisa saya berikan ke komponen lain yang akan luar biasa.
99
Jawaban:
Komponen React menampilkan semua event mouse Javascript standar di antarmuka tingkat atas mereka. Tentu saja, Anda masih dapat menggunakan
:hover
CSS Anda, dan itu mungkin cukup untuk beberapa kebutuhan Anda, tetapi untuk perilaku lebih lanjut yang dipicu oleh hover, Anda harus menggunakan Javascript. Jadi untuk mengelola interaksi hover, Anda akan ingin menggunakanonMouseEnter
danonMouseLeave
. Anda kemudian memasangnya ke penangan di komponen Anda seperti ini:Anda kemudian akan menggunakan beberapa kombinasi state / props untuk meneruskan status atau properti yang diubah ke komponen React anak Anda.
sumber
onMouseEnter
onMouseLeave
peristiwa DOM. Mereka tidak akan bekerja sesuai kebiasaanReactComponent
, Anda harus meneruskan acara sebagai penyangga dan mengikat acara ini ke elemen DOM diReactComponent
<div onMouseOver={ () => this.props.onMouseOver }>
ReactJs mendefinisikan kejadian sintetis berikut untuk kejadian mouse:
Seperti yang Anda lihat, tidak ada peristiwa hover, karena browser tidak mendefinisikan peristiwa hover secara native.
Anda akan ingin menambahkan penangan untuk onMouseEnter dan onMouseLeave untuk perilaku hover.
ReactJS Docs - Acara
sumber
Aku tahu jawaban yang diterima adalah besar, tetapi untuk siapa saja yang mencari hover seperti merasa Anda dapat menggunakan
setTimeout
dimouseover
dan menyimpan pegangan dalam peta (katakanlah daftar id untuk Handle setTimeout). Padamouseover
membersihkan pegangan dari setTimeout dan menghapusnya dari petaDan implementasikan peta sebagai berikut:
Dan petanya seperti itu,
Saya lebih suka
onMouseOver
danonMouseOut
karena itu juga berlaku untuk semua anak diHTMLElement
. Jika ini tidak diperlukan, Anda dapat menggunakanonMouseEnter
danonMouseLeave
masing - masing.sumber
Untuk mendapatkan efek hover, Anda dapat mencoba kode ini
Atau jika Anda ingin menangani situasi ini menggunakan hook useState () maka Anda dapat mencoba bagian kode ini
Kedua kode di atas akan berfungsi untuk efek hover tetapi prosedur pertama lebih mudah untuk ditulis dan dipahami
sumber