React Native formik + yup
Run the following command with your project directory
npm i formik and npm i yup
Code for Form Validation in React Native
Open App.js in any code editor and replace the code with the following code
App.js
import * as yup from 'yup'
import { Formik } from 'formik'
import React, { Component, Fragment } from 'react';
import { TextInput, Text, Button, Alert } from 'react-native';
export default class App extends Component {
render() {
return (
<Formik
initialValues={{ email: '', password: '' }}
onSubmit={values => Alert.alert(JSON.stringify(values))}
validationSchema={yup.object().shape({
email: yup
.string()
.email()
.required(),
password: yup
.string()
.min(6)
.required(),
})}
>
{({ values, handleChange, errors, setFieldTouched, touched, isValid, handleSubmit }) => (
<Fragment>
<TextInput
value={values.email}
onChangeText={handleChange('email')}
onBlur={() => setFieldTouched('email')}
placeholder="E-mail"
/>
{touched.email && errors.email &&
<Text style={{ fontSize: 10, color: 'red' }}>{errors.email} </Text>
}
<TextInput
value={values.password}
onChangeText={handleChange('password')}
placeholder="Password"
onBlur={() => setFieldTouched('password')}
secureTextEntry={true}
/>
{touched.password && errors.password &&
<Text style={{ fontSize: 10, color: 'red' }}>{errors.password} </Text>
}
<Button
title='Sign In'
disabled={!isValid}
onPress={handleSubmit}
/>
</Fragment>
)}
</Formik>
);
}
}
Comments
Post a Comment