Formik and Yup are popular libraries in the React ecosystem that simplify form handling and validation. Here's a step-by-step guide on how to use Formik and Yup in your React app:
- Install Dependencies: Make sure you have Formik and Yup installed in your project.
npm install formik yup
-
Create a Form Component:
Create a new React component for your form. For example,
LoginForm.js.
// LoginForm.js
import React from 'react';
import { Formik, Form, Field, ErrorMessage } from 'formik';
import * as Yup from 'yup';
const LoginForm = () => {
return (
<Formik
initialValues={{
email: '',
password: '',
}}
validationSchema={Yup.object({
email: Yup.string().email('Invalid email address').required('Required'),
password: Yup.string().required('Required'),
})}
onSubmit={(values, { setSubmitting }) => {
// Handle form submission logic here
console.log(values);
setSubmitting(false);
}}
>
<Form>
<label htmlFor="email">Email</label>
<Field type="email" name="email" />
<ErrorMessage name="email" component="div" />
<label htmlFor="password">Password</label>
<Field type="password" name="password" />
<ErrorMessage name="password" component="div" />
<button type="submit">Submit</button>
</Form>
</Formik>
);
};
export default LoginForm;
-
Explanation:
-
Formik: The main wrapper component for managing the form state and handling form submission. -
Form: The HTML form element that wraps your form fields. -
Field: Represents a form input field, and you can use it for various input types (text,password,email, etc.). -
ErrorMessage: Displays validation errors for a specific field.
-
-
Validation with Yup:
- The
validationSchemaprop inFormikis used to define the validation rules using Yup. - In the example, we defined rules for the
emailandpasswordfields using theYup.string()schema methods.
- The
-
Handle Form Submission:
- The
onSubmitprop inFormikis a function that will be called when the form is submitted. - You can handle your form submission logic inside this function.
- The
Usage:
Import and use theLoginFormcomponent in your main application file (e.g.,App.js).
// App.js
import React from 'react';
import LoginForm from './LoginForm';
const App = () => {
return (
<div>
<h1>Login Form</h1>
<LoginForm />
</div>
);
};
export default App;
Now, you have a basic form with validation using Formik and Yup in your React app. Customize the form structure and validation rules according to your specific requirements.
If you enjoy my content and would like to support my work, you can buy me a coffee. Your support is greatly appreciated!
Disclaimer: This content has been generated by AI.
Top comments (0)