reactjs - Hur man skapar klickhändelsehanteringsfunktioner med TypeScript
Jag försöker lägga till en händelselyssnare för klick, men det står att classList inte finns på typen EventTarget.
class UIModal extends React.Component<Props> {
handleClick = (e: Event) => {
if ((e.target as EventTarget).classList.contains('modal-mask')) {
this.props.close();
}
}
componentDidMount() {
window.addEventListener('click', this.handleClick);
}
componentWillUnmount() {
window.removeEventListener('click', this.handleClick);
}
render() {
return (
<div className="modal-mask">
<div className="modal">
{this.props.children}
</div>
</div>
);
}
}
Svar #1
Kanske borde du prova e.target som Element?
Svar #2
e.target bör vara e.currentTarget
Det pågår en liten diskussion om detta här https://github.com/Microsoft/TypeScript/issues/299