我做了一个example,以说明发生了什么(我在Google上首次搜索了“ formik example”)。
我正在使用react-select
,它在状态下存储具有value
和label
属性的对象。
我正在使用Yup.string().required()
验证Formik表单,但没有显示任何错误。为什么没有显示任何错误?这是故意的还是一个错误?该如何解决?
答案 0 :(得分:1)
根据Yup的文档:
默认情况下,字符串的强制转换逻辑是在值存在的情况下调用toString。空值不被强制转换(使用sure()将空值强制转换为空字符串)。
换句话说,它在选择结果上调用toString()
(即它是一个字符串)。您可以使用"[object Object]"
(documentation here)对其进行修复:
strict()
当然,那么您选择的输入将无法通过验证,因此您需要将其更改为如下所示:
validationSchema={Yup.object().shape({
select: Yup.string()
.strict(true)
.required(" select Required")
})}