Steps:
Use
refto Control Focus
Assign arefto eachTextInputto programmatically control focus.Handle
onSubmitEditing
Use theonSubmitEditingevent to focus the next input.Set
returnKeyType
SetreturnKeyTypeto"next"for intermediate fields and"done"for the last one.Prevent Keyboard Dismissal
UseblurOnSubmit={false}to keep the keyboard open while navigating.
Code Example:
import React, { useRef } from 'react';
import { TextInput, View, StyleSheet } from 'react-native';
const App = () => {
const input1Ref = useRef(null);
const input2Ref = useRef(null);
const input3Ref = useRef(null);
return (
<View style={styles.container}>
<TextInput
ref={input1Ref}
style={styles.input}
placeholder="Input 1"
returnKeyType="next"
onSubmitEditing={() => input2Ref.current?.focus()}
blurOnSubmit={false}
/>
<TextInput
ref={input2Ref}
style={styles.input}
placeholder="Input 2"
returnKeyType="next"
onSubmitEditing={() => input3Ref.current?.focus()}
blurOnSubmit={false}
/>
<TextInput
ref={input3Ref}
style={styles.input}
placeholder="Input 3"
returnKeyType="done"
onSubmitEditing={() => console.log('Form submitted')}
/>
</View>
);
};
const styles = StyleSheet.create({
container: { flex: 1, justifyContent: 'center', padding: 16 },
input: { height: 50, borderColor: 'gray', borderWidth: 1, marginBottom: 10, paddingHorizontal: 10 },
});
export default App;
Key Properties:
-
ref: Links eachTextInputto a reference for focus control. -
onSubmitEditing: Triggers focus on the next field when the "Next" button is pressed. -
returnKeyType: Sets the keyboard button type to"next"or"done". -
blurOnSubmit: Prevents the keyboard from closing when moving to the next input.
Top comments (1)
Thank you for your great summary! I’d like to add something.
blurOnSubmitis now deprecated. You can usesubmitBehaviorinstead. Here’s how it works:1.
submitBehavior="submit"onSubmitEditing.Example:
2.
submitBehavior="blurAndSubmit"(default for single-line inputs)onSubmitEditingand blurs the current input (loses focus).Example:
Key Points
submitBehavior="submit"for seamless navigation through inputs.submitBehavior="blurAndSubmit"when you want to finish editing and close the keyboard.Hope this helps! 😊