Skip to content

Validando um array de e-mails

Validando um array de e-mails

import React from 'react';
import { useForm, useFieldArray } from 'react-hook-form';
const EmailArrayValidationForm = () => {
const {
register,
control,
handleSubmit,
formState: { errors },
} = useForm();
const { fields, append, remove } = useFieldArray({ control, name: 'emails' });
const onSubmit = (data) => {
console.log('Dados:', data);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
{fields.map((field, index) => (
<div key={field.id}>
<input
{...register(`emails.${index}.address`, {
required: 'E-mail é obrigatório',
pattern: {
value: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
message: 'E-mail inválido',
},
})}
placeholder="E-mail"
/>
{errors.emails?.[index]?.address && (
<p>{errors.emails[index].address.message}</p>
)}
<button type="button" onClick={() => remove(index)}>
Remover
</button>
</div>
))}
<button type="button" onClick={() => append({})}>
Adicionar E-mail
</button>
<button type="submit">Enviar</button>
</form>
);
};
export default EmailArrayValidationForm;

Aqui estamos validando que o array contenha apenas e-mails válidos. Se qualquer elemento do array for de um formato incorreto, uma mensagem de erro será exibida.