import { Input, Button, FormControl } from 'native-base'; import React from 'react'; import { useFormik, FormikErrors } from 'formik'; type IFormFields = { firstName?: string; lastName?: string; email?: string; }; function validateEmail(email: string) { var re = /\S+@\S+\.\S+/; return re.test(email); } export const Example = () => { const formik = useFormik({ initialValues: { firstName: '', lastName: '', email: '', }, onSubmit: async (values) => { console.log('Handle submit', values); }, validate: (values) => { let errors: FormikErrors = {}; if (!values.firstName) { errors.firstName = 'Required'; } else if (values.firstName.length > 15) { errors.firstName = 'Max allowed characters 15'; } if (!values.email) { errors.email = 'Required'; } else if (!validateEmail(values.email)) { errors.email = 'Please enter a valid email address'; } return errors; }, }); const { handleChange, handleSubmit, errors, values } = formik; console.log(values); return ( <> First Name {errors.firstName} Last Name Email {errors.email} ); };