Q:
当用户使用中文输入法时,按回车键会先完成中文输入,然后才触发键盘事件,导致组件误认为用户要选择最后一项。
R:
工作原理
js
1. @compositionstart:当用户开始输入中文时,handleCompositionStart 被调用,设置 isComposing = true
2. @compositionend:当用户完成中文输入时,handleCompositionEnd 被调用,设置 isComposing = false
3. @keydown:在 handleKeyDown 中检查 isComposing,如果正在输入中文则不处理键盘事件
效果
现在当用户使用中文输入法时:
- ✅ 输入中文时:不会触发键盘导航和选择操作
- ✅ 完成中文输入后:键盘导航功能恢复正常
- ✅ 英文输入:不受影响,正常工作
这样就完美解决了中文输入法回车导致误选择的问题!