You need to enable JavaScript to run this app. 如何在输入13个字符时触发React Native TextInput的onSubmitEditing事件
优惠活动
大模型
产品
解决方案
定价
更多

如何在输入13个字符时触发React Native TextInput的onSubmitEditing事件

实现方案
  • 给Input组件绑定ref,用于手动触发提交事件
    首先在函数组件内创建ref:
    const inputRef = useRef(null);
  • 改造onChangeText回调逻辑,输入长度达到13位时自动触发提交
    调整你的onChangeText方法:
    const onChangeText = (text) => {
      // 保留原有的状态更新逻辑
      setBarcodes(text);
      // 长度校验通过后触发提交
      if (text.length === 13) {
        inputRef.current?.submitEditing();
      }
    }
    
  • 调整后的完整组件代码:
    <Input
      ref={inputRef}
      placeholder={'Ürün ara'}
      value={barcodes}
      onChangeText={text => onChangeText(text)}
      keyboardType="number-pad"
      autoFocus
      blurOnSubmit={false}
      contextMenuHidden={true}
      maxLength={13}
      style={{
        paddingRight: dimensions.width * 0.125,
        paddingLeft: dimensions.width * 0.03,
      }}
      onSubmitEditing={event => getir(event.nativeEvent.text)}
    />
    

如果不需要严格触发onSubmitEditing原生事件,也可以省略绑定ref的步骤,在onChangeText判断长度达标后直接调用getir(text),效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 13:06:09