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

标签 javascript android react-native textinput

我正在尝试在react native中制作这个OTP(6位)输入框。 会发生什么 - 当用户按下任何键(除了 backspace 键)时,它应该跳转到下一个框,当用户按下 backspace 键时,它应该跳到下一个框返回上一个框。

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

             <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 keyboard 之间有什么不同和hardware keyboard

soft keyboard (屏幕键盘或软件键盘)就像手机或平板电脑屏幕上的键盘。
hardware keyboard (外部键盘)就像带 USB 的键盘(Android 支持)。


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

如果您无法忽略硬件键盘

我建议使用这个库react-native-confirmation-code-field尝试零食here

或者按照库的方式,它使用一个不可见的组件,该组件将在组件上拉伸(stretch)。

enter image description here

关于javascript - React Native & TextInput : How to get what the use type one by one for Android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68406305/

相关文章:

javascript - Bootstrap : Show on Carousel Product Slider on smallest View only one product

JavaScript - onmouseover 修改前一个元素的 css 高度

android - 在测试项目中使用资源文件夹获取测试字符串数据

react-native - 如何在expo sdk33中加载 "ionicons"字体?

reactjs - React 中的事件驱动方法?

javascript - 为什么我的作用域变量没有绑定(bind)?

javascript - 将整个 Object3D/Mesh 层次结构合并在一起

android - 添加recyclerview-v7:23.0.0后编译时出错

java - 日期字符串的正确日期格式,例如 "2013-11-16T08:46:00.000-06:00"

javascript - 找不到包名称 '' 的匹配客户端,但应用程序目录中存在 google-services.json