如何在输入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
相关产品推荐
相关产品推荐

