And*_*nas 1 typescript reactjs
const handleOnChange = (e: React.SyntheticEvent<HTMLInputElement>): void => {
console.log(e.name);
}
<input name="aa" onChange={handleOnChange} />
Run Code Online (Sandbox Code Playgroud)
为什么HTMLInputElementreact中没有name属性?
更改事件对象的正确类型是:ChangeEvent<HTMLInputElement>。
尽管e.name不存在,但获取元素name属性的正确方法是事件中的e.target.name对象target是输入元素本身,并且您需要name从中获取属性。
所以你的handleOnChange方法看起来像:
const handleOnChange = (e: ChangeEvent<HTMLInputElement>): void => {
console.log(e.target.name);
}
Run Code Online (Sandbox Code Playgroud)
或者:
const handleOnChange: ChangeEventHandler<HTMLInputElement> = (e) => {
console.log(e.target.name);
}
Run Code Online (Sandbox Code Playgroud)
在本例中,您定义变量的类型handleOnChange,并将箭头函数分配给该变量,因此 TypeScript 将相应地推断出类型e。
| 归档时间: |
|
| 查看次数: |
644 次 |
| 最近记录: |