Mengapa `MouseEvent` di penangan kejadian kotak centang tidak generik?


92

Saya memiliki elemen kotak centang TSX (JSX):

<input type="checkbox" name={i.toString()} onClick={this.handleCheckboxClick} />

Dengan bantuan kode VS saya tahu bahwa jenis parameter input this.handleCheckboxClickadalah MouseEvent<HTMLInputElement>. Jadi saya menerapkannya dengan:

private handleCheckboxClick(event: MouseEvent<HTMLInputElement>) {
    ...
}

Kemudian saya mendapatkan kesalahan yang mengatakan [ts] Type 'MouseEvent' is not generic.Seperti yang ditunjukkan pada gambar di bawah ini:

masukkan deskripsi gambar di sini

Versi paket saya:

"@types/react": "^15.0.29",
"@types/react-dom": "^15.5.0",
"react": "^15.6.1",
"react-dom": "^15.6.1",
"typescript": "^2.3.4",

Mengapa demikian?

Jawaban:


249

Anda mungkin menggunakan DOM MouseEvent. Coba gunakan React.MouseEvent<HTMLInputElement>sebagai gantinya.


2
Tidak bekerja untuk saya, saya mendapatkan:type: "checkbox" onChange: (e: MouseEvent<HTMLInputElement>) => void; defaultChec...' is not assignable to type 'InputHTMLAttributes<HTMLInputElement>'
Kokodoko

@Kokok, apakah kamu pernah memperbaiki ini?
SuperUberDuper

6

Untuk menggunakan React MouseEvent, pastikan untuk menambahkan:

import { MouseEvent } from 'react';


3

Anda dapat menggunakan SyntheticEvent sebagai ganti MouseEvent

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.