</> ErrorMessage:
Component
A simple component to render associated input's error message.
npm install @hookform/error-message
Props
Name | Type | Required | Description |
---|---|---|---|
name | string | ✓ | Name of the field. |
errors | object | errors object from React Hook Form. Optional if you are using FormProvider . | |
message | string | React.ReactElement | Inline error message. | |
as | React.ElementType | string | Wrapper component or HTML tag. For example: as="span" or as={<Text />} | |
render | ({ message: string | React.ReactElement, messages?: Object}) => any | This is a render prop for rendering error message or messages. Note: you need to set criteriaMode to 'all' for using messages . |
Examples:
Single Error Message
import React from "react"import { useForm } from "react-hook-form"import { ErrorMessage } from "@hookform/error-message"interface FormInputs {singleErrorInput: string}export default function App() {const {register,formState: { errors },handleSubmit,} = useForm<FormInputs>()const onSubmit = (data: FormInputs) => console.log(data)return (<form onSubmit={handleSubmit(onSubmit)}><input{...register("singleErrorInput", { required: "This is required." })}/><ErrorMessage errors={errors} name="singleErrorInput" /><ErrorMessageerrors={errors}name="singleErrorInput"render={({ message }) => <p>{message}</p>}/><input type="submit" /></form>)}
Multiple Error Messages
import React from "react"import { useForm } from "react-hook-form"import { ErrorMessage } from "@hookform/error-message"interface FormInputs {multipleErrorInput: string}export default function App() {const {register,formState: { errors },handleSubmit,} = useForm<FormInputs>({criteriaMode: "all",})const onSubmit = (data: FormInputs) => console.log(data)return (<form onSubmit={handleSubmit(onSubmit)}><input{...register("multipleErrorInput", {required: "This is required.",pattern: {value: /d+/,message: "This input is number only.",},maxLength: {value: 10,message: "This input exceed maxLength.",},})}/><ErrorMessageerrors={errors}name="multipleErrorInput"render={({ messages }) =>messages &&Object.entries(messages).map(([type, message]) => (<p key={type}>{message}</p>))}/><input type="submit" /></form>)}
Thank you for your support
If you find React Hook Form to be useful in your project, please consider to star and support it.