我有一个 PIN 码字段组件,它只是一组被包裹在
React.Fragment
中的输入框。每次按键时,它会将焦点转移到下一个输入框。当我到达最后一个输入框时,我想触发一个制表符,以将焦点转移到组件外的下一个控件(例如输入框、按钮、链接等)。我尝试分派一个KeyboardEvent
,但没有起作用:const evt = new KeyboardEvent("keydown", {
...
code: "Tab",
key: "Tab",
})
lastInput.dispatchEvent(evt)
有什么想法吗?
源代码: https://github.com/soywod/react-pin-field
演示地址: https://react-pin-field.soywod.me/
PinField
有一个onComplete
属性。我使用const nextField = useRef()
保存下一个控制器的引用,并设置onComplete
如下:onComplete={() => nextField.current && nextField.current.focus()}
。 - soywod