我正在尝试在错误消息中输出字段值,如下所示:

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:无法读取未定义的属性“parent”。在错误消息中访问字段值的正确方法是什么?

最佳答案

我用来将值转换为错误消息的技巧是使用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')),
}));

关于javascript - 是的-在错误消息中输出字段值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59772545/

10-12 05:55