const handleInput = (event: any) => { if (event.key === 'Enter') { console.l">
这应该是非常容易的,但显然不是。在标准的HTML元素中,如果input
被击中,我希望执行和操作。我正在努力学习TS,但不知道哪种类型适合我所需要的一切。
<input type="text" onChange={handleInput} />
const handleInput = (event: any) => {
if (event.key === 'Enter') {
console.log(event.target.value);
};
};
如果
event: InputEvent
--那么我甚至不能调用函数,因为事件类型完全是event: ChangeEvent<HTMLInputEvent>
,那么我就可以到达event.target.value
,但是错误显示没有key
属性,这是正确的。在这种情况下,击键值保持在event.nativeEvent.data
下。然而,如果我选择if (event.nativeEvent.data...)
,那么一个错误说明没有data
属性,尽管显然存在:// from the console
nativeEvent: InputEvent {isTrusted: true, data: "d"...)
如果,
event: KeyboardEvent
,那么我得到了event.key
,但是现在event.target.value
不存在。我想知道两件事:
对于这个事件,什么是正确的类型? differences?
发布于 2021-05-20 07:27:56
要侦听按下的键,需要的是onKeyDown
,而不是onChange
。
const handleEnter = (event: React.KeyboardEvent<HTMLInputElement>) => {
if (event.key === "Enter") { ... }
}
<input onKeyDown={handleEnter} ... />
https://stackoverflow.com/questions/67623384
复制相似问题