React Native & TextInput:如何为 Android 一一获取使用类型?

React Native & TextInput : How to get what the use type one by one for Android?

我正在尝试在 react native 中制作此 OTP (6 digits) 个输入框。 将发生的是 - 当用户按下任意键(backspace 键除外)时,它应该跳转到下一个框,当用户按下 backspace 键时,它应该返回到上一个框.

到目前为止,它在 iOS 上运行良好,然后当我检查 Android 时,它根本不会跳转到下一个框。上网查了一下,发现Android不支持onKeyPress。在没有 onKeyPress 的情况下,如何让它在 android 下工作?我应该使用 onChange 吗?但是我怎么知道用户是否按下 backspace?

             <TextInput
                editable={editable}
                value={input_1}
                style={styles.inputBox}
                keyboardType='number-pad'
                ref={box_1}
                // onChange={({ text }) => {
                //   setInput_1(text);
                // }}

                onFocus={() => {
                 
                }}
                onKeyPress={({ nativeEvent }) => {
                  if (nativeEvent.key === 'Backspace') {
                    box1.current.focus();
                  } else {
                    focus(1);
                  }
                }}
              />
        

谢谢。

文档说 在 android 工作 但从 soft keyboard 不是 hardware keyboard 我想你可能会忽略硬件键盘.

docs

Note: on Android only the inputs from soft keyboard are handled, not the hardware keyboard inputs.

soft keyboardhardware keyboard有什么区别?

soft keyboard屏幕键盘或软件键盘)类似于phone或平板电脑屏幕中的键盘。
hardware keyboard外接键盘)像带 USB 的键盘(android 支持)。


如果在模拟器中测试,请尝试通过鼠标使用模拟器键盘,而不是计算机键盘。

如果你不能忽略硬件键盘

我建议使用这个库react-native-confirmation-code-field try snack here

或者按照库的方式,它使用一个不可见的组件,它将被拉伸到组件上。