Slide 34
Slide 34 text
export async function updateAction(prevState: FormState, formData: FormData): Promise {
try {
// ★: バリデーションエラーが発生した場合 catch 句へ
const payload = validateFormData(formData);
// ...省略
} catch (err) {
// ★: Zod のバリデーションエラーをマッピング
if (err instanceof ZodError) {
return handleError(prevState, {
...errors[400],
fieldErrors: transformFiledErrors(err),
});
}
return handleError(prevState, errors[500]);
}
}
ServerAction 内で発生したエラー表現(書籍例)
【1】Progressive Enhancement に関する書籍内容の紹介
例えば、バリデーションエラーが発生した場合