Vyhledávání na webu

reactjs - Proč není React `MouseEvent` v obsluze události zaškrtávacího políčka generický?


Mám prvek checkbox TSX(JSX):

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

S pomocí VS Code vím, že typ vstupního parametru this.handleCheckboxClick je MouseEvent<HTMLInputElement>. Takže jsem to implementoval takto:

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

Pak se mi zobrazí chyba, která říká [ts] Typ 'MouseEvent' není generický. Jak je vidět na obrázku níže:

Verze mých balíčků:

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

Proč je to tak?

Odpověď č. 1

Pravděpodobně používáte DOM MouseEvent. Zkuste místo toho použít React.MouseEvent<HTMLInputElement>.

Odpověď č. 2

Aby bylo možné použít React MouseEvent, ujistěte se, že přidáte:

import { MouseEvent } from 'react';

Související články