😎
【Web Library】Nextjs13で覚える便利なライブラリ【#7Formik】
【#7Formik】
YouTube: https://youtu.be/6U4GAM8tPRA
今回からフォームにバリデーションを設定するライブラリ
「Formik」について解説します。
今回は、インストールとページの下準備を行います。
npm install formik --save
"dependencies": {
"formik": "2.2.9",
},
app/formik/basic/page.tsx
'use client';
import { Formik, Form, Field, ErrorMessage, FormikErrors } from 'formik';
interface FormikValues {
email: string;
password: string;
}
const Page = () => {
return (
<div>
<h1>Any place in your app!</h1>
<Formik
initialValues={{ email: '', password: '' }}
validate={(values) => {
const errors: FormikErrors<FormikValues> = {};
if (!values.email) {
errors.email = 'Required';
} else if (
!/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(values.email)
) {
errors.email = 'Invalid email address';
}
return errors;
}}
onSubmit={(values, { setSubmitting }) => {
setTimeout(() => {
alert(JSON.stringify(values, null, 2));
setSubmitting(false);
}, 400);
}}
>
{({ isSubmitting }) => (
<Form>
<Field type="email" name="email" />
<ErrorMessage name="email" component="div" />
<Field type="password" name="password" />
<ErrorMessage name="password" component="div" />
<button type="submit" disabled={isSubmitting}>
Submit
</button>
</Form>
)}
</Formik>
</div>
);
};
export default Page;
Discussion