问题描述
只要更改输入元素,就会调用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>) {
// ...