Javascript React Native-在函数调用后修改TextInput

Javascript React Native-在函数调用后修改TextInput,javascript,react-native,Javascript,React Native,我正在尝试创建一个窗体,在按下enter键后,它将自动移动到以下参数。我想出了一种方法,但实际上需要数百行代码。我想一定有更简单的办法。我基本上有两个问题: 如何向XInput2部件添加计数器 如何正确添加引用。我当前的代码给出:undefined不是对象this5.refs.XInput.focus()未定义 这是呈现文本输入字段的代码 renderTextField(options) { return ( <TextInput style

我正在尝试创建一个窗体,在按下enter键后,它将自动移动到以下参数。我想出了一种方法,但实际上需要数百行代码。我想一定有更简单的办法。我基本上有两个问题:

  • 如何向XInput2部件添加计数器
  • 如何正确添加引用。我当前的代码给出:undefined不是对象this5.refs.XInput.focus()未定义
  • 这是呈现文本输入字段的代码

    renderTextField(options) {
        return (
            <TextInput
                style={styles.textfield}
                onChangeText={(value) => this.setState({ [options.name]: value})}
                onSubmitEditing={(event) => { 
                this.refs.XInput.focus(); 
                }}
                placeholder={options.label}
                value={this.state[options.name]}
                keyboardType={options.keyboard || 'default'}
            />
        );
    }
    
    请看一看这本书。我认为最好的方法是对XInput值使用某种计数器并手动修改它。如何为该值添加计数器,或者有更好的方法吗

    onSubmitEditing={(event) => { 
                    this.refs.XInput.focus(); 
                    }}
    

    字符串引用已被弃用,应避免使用。别担心,从长远来看,推荐的方法会帮你省去一些头痛,而且简单易懂

    因此,基本上我将ref固定在TextInput中,而不是担心复杂的计数器系统,我使用
    next
    选项将其简化,该选项将是提交时下一个字段的名称

    这应该让你开始:

    renderTextField = (options) => {
      return (
        <TextInput
          ref={(tInput) => { this.refs[options.name] = tInput; }}
          style={{ height: 25 }}
          onChangeText={(value) => this.setState({ [options.name]: value })}
          onSubmitEditing={() => {
            if (options.next) {
              this.refs[options.next].focus();
            }
          }}
          placeholder={options.label}
          value={this.state[options.name]}
          keyboardType={options.keyboard || 'default'}
        />
      );
    };
    

    字符串引用已被弃用,应避免使用。别担心,从长远来看,推荐的方法会帮你省去一些头痛,而且简单易懂

    因此,基本上我将ref固定在TextInput中,而不是担心复杂的计数器系统,我使用
    next
    选项将其简化,该选项将是提交时下一个字段的名称

    这应该让你开始:

    renderTextField = (options) => {
      return (
        <TextInput
          ref={(tInput) => { this.refs[options.name] = tInput; }}
          style={{ height: 25 }}
          onChangeText={(value) => this.setState({ [options.name]: value })}
          onSubmitEditing={() => {
            if (options.next) {
              this.refs[options.next].focus();
            }
          }}
          placeholder={options.label}
          value={this.state[options.name]}
          keyboardType={options.keyboard || 'default'}
        />
      );
    };
    
    {renderTextField({ name: 'cacao21', label: 'Fermented Beans', next: 'cacao22' })}
    {renderTextField({ name: 'cacao22', label: 'Partially Fermented Beans', next: 'cacao23' })}
    {renderTextField({ name: 'cacao23', label: 'End of the Bean Line' })}