Using Formik + Yup:
1import { Formik } from "formik";2import * as Yup from "yup";34const schema = Yup.object().shape({5 email: Yup.string().email("Invalid email").required("Required"),6 password: Yup.string().min(6, "Too short").required("Required"),7});89function LoginForm() {10 return (11 <Formik12 initialValues={{ email: "", password: "" }}13 validationSchema={schema}14 onSubmit={handleSubmit}15 >16 {({ handleChange, errors, touched }) => (17 <>18 <TextInput19 onChangeText={handleChange("email")}20 style={errors.email && touched.email ? styles.error : null}21 />22 {errors.email && touched.email && (23 <Text style={styles.errorText}>{errors.email}</Text>24 )}25 </>26 )}27 </Formik>28 );29}
Libraries:
react-hook-form (performant)formik (feature-rich)yup/zod for schema validation