使用 zod 进行电子邮件验证 - 多个错误描述

问题描述 投票:0回答:1

我需要使用 zod 验证电子邮件和确认电子邮件,当我精炼检查电子邮件是否不匹配时,我想在这两个字段中显示我的错误,但它不适用于精炼中的

path

我正在尝试使用

path: ['emai', 'confirmEmail']
,但它不起作用,并且在表单上给了我一条未定义的消息。

const SignUpFormInputsSchema = z.object({
    email: z
      .string({
        required_error: 'email is required.',
        invalid_type_error: 'email is invalid.',
      })
      .email('email is invalid.'),
    confirmEmail: z
      .string({
        required_error: 'email confirmation is required.',
        invalid_type_error: 'email confirmation is invalid.',
      })
      .email('email is invalid.'),
  })
  .refine(
    ({ email, confirmEmail }) => {
      return email === confirmEmail
    },
    {
      message: 'emails must match.',
      path: ['emai', 'confirmEmail'],
    },
  )
javascript reactjs typescript validation zod
1个回答
0
投票

路径应反映您访问错误值的方式。您正在做的是尝试访问值

confirmEmail
obj.email
。在这种情况下,它将是
undefined
,因为
obj.email.confirmEmail

中没有任何内容

Zod 文档上的示例决定使用确认路径。

© www.soinside.com 2019 - 2024. All rights reserved.