将焦点自动更改为React Native中的下一个TextInput

雷扎

我正在开发本机的应用程序。我有以下三个TextInput框:

在此处输入图片说明

如果用户插入数字,则需要自动更改TextInput框的焦点。然后,只要他/她输入了最后一个数字,就应该执行一个功能。

这是我的代码:

  <View style={styles.squareContainer}>
                <View style={styles.square}>
                    <TextInput
                      onChangeText={(oldPassword) => this.setState({oldPassword})}
                      style={{flex:1}}
                      ref="1"
                      keyboardType={'numeric'}
                      style={styles.inputText}
                      maxLength = {1}
                      underlineColorAndroid='rgba(0,0,0,0)'
                      numberOfLines={1}
                      secureTextEntry={true}
                      onSubmitEditing={() => this.focusNextField('2')}


                    />
                </View>
                <View style={styles.square}>
                    <TextInput
                      style={{flex:1}}
                      ref="2"
                      onChangeText={(oldPassword) => this.setState({oldPassword})}
                      keyboardType={'numeric'}
                      maxLength = {1}
                      style={styles.inputText}
                      underlineColorAndroid='rgba(0,0,0,0)'
                      numberOfLines={1}
                      secureTextEntry={true}
                      onSubmitEditing={this.maxLength?1:() => this.focusNextField('3')}


                    />
                </View>
                <View style={styles.square}>
                    <TextInput
                      style={{flex:1}}
                      ref="3"
                      onChangeText={(oldPassword) => this.setState({oldPassword})}
                      returnKeyType='next'
                      keyboardType={'numeric'}
                      style={styles.inputText}
                      underlineColorAndroid='rgba(0,0,0,0)'
                      numberOfLines={1}
                      secureTextEntry={true}


                    />
                </View>
              </View>

换句话说,例如,如果用户要插入153,则他/她应在第一个TextInput中插入1,然后光标和焦点应自动替换为下一个TextInput,并且他/他可以插入5,最后通过移动焦点然后光标指向第三个TextInput,他/她可以插入3。他插入3后,就需要执行this.triggerFunction()如您所见,我尝试使用以下技巧,但是没有用:

onSubmitEditing={this.maxLength?1:() => this.focusNextField('3')}

您能帮我解决这个问题吗?提前致谢。

艾萨克·塞卡马特(Isaac Sekamatte)

您必须TextInput将光标对准焦点为此,您可以设置maxLength1,然后调用onChangeText以更改焦点。您可能还需要捕获value并将其存储在状态中。

您应该做的另一件事是使用单词或字符作为参考。这些将被称为对象,而数字可能会让人有点困惑。ref={'input_1'}代替ref={'1'}

 <TextInput
    style={{flex:1}}
    ref="input_1"
    keyboardType={'numeric'}
    style={styles.inputText}
    maxLength = {1}
    value={this.state.value}
    underlineColorAndroid='rgba(0,0,0,0)'
    numberOfLines={1}
    secureTextEntry={true}
    onChangeText={value => {
       this.setState({ value })
       if (value) this.refs.input_2.focus(); //assumption is TextInput ref is input_2
    }}
  />

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何自动将下一个TextInput聚焦在react-native上

将焦点更改为颤动中的下一个文本字段

如何在React Native中移动下一个textInput

似乎无法聚焦下一个 TextInput (React-Native)

React Native-专注于下一个TextInput字段

自动关注下一个TextInput onChangeText崩溃

使用angularjs将焦点更改为下一个输入文本

达到 maxLength 后如何将焦点更改为下一个 EditText?

React Native android:按下“ actionNext”键盘按钮后如何选择下一个TextInput?

React Native:如何在按下“下一步”键盘按钮后选择下一个TextInput?

React Native + Redux Form-使用键盘上的下一步按钮转到下一个TextInput字段

使用 VueJS 和 Quasar 将焦点更改为“Enter”键上的下一个输入字段

当输入的字符串到达特定字符时,jQuery将焦点更改为下一个输入

将焦点移到另一个 div 中的下一个输入

TextInput:当maxLength填满时,自动聚焦下一个字段

React Native,将两个值传递给导航中的下一个屏幕

通过单击javascript 3值中的按钮将日期更改为下一个/上一个

如何创建一个按钮,将图像更改为图像数组中的下一个图像

在列中查找下一个更改

React Native 中心按钮对齐一个下一个

在Flutter中将焦点从一个文本字段更改为下一个文本字段

将焦点设置到下一个输入

号码不会更改为下一个号码

输入满足条件后,如何自动将QLineEdit的焦点更改为另一个QLineEdit?

移至下一个文本输入字段,而无需在react-native中关闭键盘

在react-native中将焦点上的underlineColorAndroid更改为TextInput

将焦点设置到表中的下一个输入字段

将焦点设置为Xamarin表单中的下一个条目

如何将焦点设置在 *ngFor 指令中的下一个 <input>