属性“ target”在类型“ HTMLInputElement”上不存在 TypeScript React TS2339

问题描述

只要更改输入元素,就会调用handleChange()函数,但似乎无法访问event.target.value

错误消息

Property 'target' does not exist on type 'HTMLInputElement'.  TS2339

handleChange()

handleChange = (event:HTMLInputElement) => {
    console.log(event);
    const { name,value } = event.target;
    this.setState({[name]: value});
};

输入元素

<input name='email' type='email' value={this.state.email} onChange={this.handleChange} required />

解决方法

您在event上输入的类型错误。这不是HTMLInputElement,而是事件。进行更改的是React.ChangeEvent<T>,其中T是您在其上使用它的元素的类型(在您的情况下为HTMLInputElement),因此:

handleChange = (event: React.ChangeEvent<HTMLInputElement>) {
    // ...

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...