打字稿 2.3.4、反应 15.5.4 和反应引导 0.31.0。
我有一个 FormControl
当用户按下回车键时我想做一些事情。
控制:
<FormControl
name="keyword"
type="text"
value={this.state.keyword}
onKeyPress={this.handleKeywordKeypress}
onChange={(event: FormEvent<FormControlProps>) =>{
this.setState({
keyword: event.currentTarget.value as string
});
}}
/>
handleKeywordKeypress
的参数定义应该是什么?
我可以这样定义:
handleKeywordKeypress= (e: any) =>{
log.debug("keypress: " + e.nativeEvent.code);
};
这将被调用,它将打印 keypress: Enter
但 e
的类型应该是什么,以便我可以将值与(什么?)进行比较,以判断是否按下了 Enter。
原文由 Shorn 发布,翻译遵循 CC BY-SA 4.0 许可协议
这似乎有效:
对我来说,这里的关键(哈哈)是指定
React.KeyboardEvent
,而不是KeyboardEvent
。浏览 React 代码,我看到了如下定义:
但是没有意识到,当我复制/粘贴
KeyboardEvent
作为我的处理程序的参数类型时,编译器实际上正在选择KeyboardEvent
这是在某处的 Typescript 库(而不是 React 定义)。