首页 > 解决方案 > 使用 formik 和 yup 进行对象验证

问题描述

这是我的对象。food:{ veg:{ name: , price: }, non_veg:{ name: , price: } } 如何验证对象,因为只有数组验证选项。

标签: reactjsformikyup

解决方案


你可以像这样使用 yup:

let schema = yup.object().shape({
  food: yup.object().shape({
    veg:yup.object().shape({
      name:yup.string().required(),
      price:yup.number().required(),
    }),
    non_veg:yup.object().shape({
      name:yup.string().required(),
      price:yup.number().required(),
    })
  })
});

您可以构建动态对象,例如:

let dynamic = yup.object().shape({
  food: yup.object().shape({
    [dynamicString]:yup.object().shape({
      name:yup.string().required(),
      price:yup.number().required(),
    }),
    [dynamicString]:yup.object().shape({
      name:yup.string().required(),
      price:yup.number().required(),
    })
  })
});

推荐阅读