一、键盘事件
需要明确 keyCode=13 和 keyCode=229 的区别?
- keyCode 13 和 229 都代表键盘上的回车键,但二者之间存在一些区别。
- keyCode 13:这是表示回车键的标准键码值。通常情况下,当用户按下回车键时,会生成一个键盘事件,其keyCode 属性的值为 13。因此,通过检查 keyCode 是否为 13,可以判断用户按下了回车键。
- keyCode 229:这是在特定情况下的某些浏览器和操作系统中,表示输入法的键码值。当用户使用非拉丁字符或复杂输入法(如中文输入法)进行输入时,这些浏览器可能会将输入事件交给操作系统的输入法处理,并且无法直接获取到最终的键码。在这种情况下,keyCode 的值会被设置为 229,表示当前正在输入的字符由输入法处理。
因此,keyCode 13 是标准回车键的键码值,而 keyCode 229 可能表示当前正在输入法处理的字符。在处理键盘事件时,需要根据具体情况对这两个键码进行区分和处理。
二、实现代码
// 这里需要对 key down 做处理
onKeyDown={keyboardEvent => {
const { key, keyCode } = keyboardEvent;
// 很对 keyCode == 229 不做处理
if (key === "Enter" && keyCode == 13) {
// ...
}
}}