Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用React和TypeScript为输入元素创建密钥处理程序

使用React和TypeScript为输入元素创建密钥处理程序
EN

Stack Overflow用户
提问于 2021-05-20 07:22:48
回答 1查看 512关注 0票数 0

这应该是非常容易的,但显然不是。在标准的HTML元素中,如果input被击中,我希望执行和操作。我正在努力学习TS,但不知道哪种类型适合我所需要的一切。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="text" onChange={handleInput} />
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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属性,尽管显然存在:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// from the console
nativeEvent: InputEvent {isTrusted: true, data: "d"...)

如果,

  • ,如果event: KeyboardEvent,那么我得到了event.key,但是现在event.target.value不存在。

我想知道两件事:

对于这个事件,什么是正确的类型? differences?

  1. 在哪里可以了解到这些小的
  2. 的类型有多少?
EN

回答 1

Stack Overflow用户

发布于 2021-05-20 07:27:56

要侦听按下的键,需要的是onKeyDown,而不是onChange

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const handleEnter = (event: React.KeyboardEvent<HTMLInputElement>) => {
    if (event.key === "Enter") { ... }
}

<input onKeyDown={handleEnter} ... />
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67623384

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文