You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中如何使用onSubmitEditing实现TextInput焦点自动跳转

问题解答

你的需求可以通过onSubmitEditing实现,但仅添加这两个属性到Input组件上不足以直接生效,还需要完成以下调整:

1. 透传属性到Input组件内部的TextInput

你现在自定义的Input组件没有接收和向下传递blurOnSubmit、onSubmitEditing属性,需要修改input.js的代码,把相关props透传给内部的原生TextInput:

import React from "react";
import { TextInput, View } from "react-native";

const Input = React.forwardRef(({placeholder, onKeyPress, blurOnSubmit, onSubmitEditing}, ref) => {
  return(
    <View>
      <TextInput 
        ref={ref} 
        placeholder={placeholder}
        onKeyPress={onKeyPress}
        blurOnSubmit={blurOnSubmit}
        onSubmitEditing={onSubmitEditing}
      />
    </View>
  )
})

export default Input;

2. 父组件调用时传入对应属性

在父组件调用firstName对应的Input时,传入你提到的两个属性即可,建议加可选链操作符?.避免ref未挂载时报错:

<Input 
  ref={firstNameRef}
  placeholder="输入名"
  blurOnSubmit={false}
  onSubmitEditing={() => lastNameRef.current?.focus()}
/>
<Input 
  ref={lastNameRef}
  placeholder="输入姓"
/>

修改完成后,在firstName输入框按下回车时就会自动跳转到lastName输入框,同时兼容Android软键盘的回车触发逻辑。

内容的提问来源于stack exchange,提问作者user15974221

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 07:33:03