首页 > 解决方案 > 是的 - 在错误消息中输出一个字段值

问题描述

我正在尝试在错误消息中输出字段值,执行如下操作:

const schema = commonSchema.concat(Yup.object().shape({
  name: Yup
    .string()
    .oneOf(
      [Yup.ref('oldName'), null],
      `Name must match oldName - ${Yup.ref('oldName').getValue()}`
    )
    .required('name'),
}));

这是给 TypeError: Cannot read property 'parent' of undefined。访问错误消息中的字段值的正确方法是什么?

标签: javascriptyup

解决方案


我用来将值转换为错误消息的技巧是使用 yup.lazy 方法。

yup.lazy((value: any) => Schema): Lazy

在你的情况下,它看起来像这样,

const schema = commonSchema.concat(Yup.object().shape({
  name: Yup.lazy((value) => 
    Yup.string()
    .oneOf(
      [Yup.ref('oldName'), null],
      `Name must match oldName - ${value}`
    )
    .required('name')),
}));

推荐阅读