コンテンツへスキップ

エラーメッセージ

エラー処理を行うエラーメッセージコンポーネント

</> ErrorMessage: コンポーネント

関連付けられた入力のエラーメッセージを表示するシンプルなコンポーネント。

npm install @hookform/error-message

プロパティ


名前必須説明
name文字列フィールドの名前。
errorsオブジェクトReact Hook Formからのerrorsオブジェクト。FormProviderを使用している場合はオプションです。
message文字列 | React.ReactElementインラインエラーメッセージ。
asReact.ElementType | 文字列ラッパーコンポーネントまたはHTMLタグ。例:as="span"またはas={}
render({ message: string | React.ReactElement, messages?: Object}) => anyこれは、エラーメッセージまたはメッセージをレンダリングするためのレンダープロップです。

注記:messagesを使用するには、criteriaModeを'all'に設定する必要があります。


単一エラーメッセージ

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" />
<ErrorMessage
errors={errors}
name="singleErrorInput"
render={({ message }) => <p>{message}</p>}
/>
<input type="submit" />
</form>
)
}
import React from "react"
import { useForm } from "react-hook-form"
import { ErrorMessage } from "@hookform/error-message"
export default function App() {
const {
register,
formState: { errors },
handleSubmit,
} = useForm()
const onSubmit = (data) => console.log(data)
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input
{...register("singleErrorInput", { required: "This is required." })}
/>
<ErrorMessage errors={errors} name="singleErrorInput" />
<ErrorMessage
errors={errors}
name="singleErrorInput"
render={({ message }) => <p>{message}</p>}
/>
<input type="submit" />
</form>
)
}

複数エラーメッセージ

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.",
},
})}
/>
<ErrorMessage
errors={errors}
name="multipleErrorInput"
render={({ messages }) =>
messages &&
Object.entries(messages).map(([type, message]) => (
<p key={type}>{message}</p>
))
}
/>
<input type="submit" />
</form>
)
}
import { useForm } from "react-hook-form";
import { ErrorMessage } from '@hookform/error-message';
export default function App() {
const { register, formState: { errors }, handleSubmit } = useForm({
criteriaMode "all"
});
const onSubmit = data => 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."
}
})}
/>
<ErrorMessage
errors={errors}
name="multipleErrorInput"
render={({ messages }) =>
messages &&
Object.entries(messages).map(([type, message]) => (
<p key={type}>{message}</p>
))
}
/>
<input type="submit" />
</form>
);
}

ご支援ありがとうございます

React Hook Formがプロジェクトで役立つと感じた場合は、スターを付けてサポートをご検討ください。