这是我使用Formik的React应用程序中的代码段。
我的初始值为
initialValues: {
country: { label: '', value: '' }
}
我的字段输入是country
,这是一个Select
选项,其值在被选择时将为
country: { label: 'India', value: 'India' }
未选择error
时,我需要的country
对象应该是
{ country: "Please select a country" }
在未选择国家/地区或以其他方式country.value === ''
时,如何添加验证确认以获取所需的错误?
我写了这样的验证
country: yup.object().shape({
value: yup
.string()
.label('Country')
.required("Please select a country"),
})
这是错误的,因此错误对象为country: { value: "Please select a country" }
,这不是我的要求。
我应该在这里做什么更改?
答案 0 :(得分:0)
value: ''
被认为是字符串的缺失值,因此除.required()
之外的大多数验证都忽略它。在这种情况下,您可以:
.required()
规则。答案 1 :(得分:0)
我找到了答案,如下。
country: yup
.object()
.test(
'country',
'Please select Country',
val => !val.value ? false : true,
)
这将检查value
对象内的country
键是否为空,并返回false
是否为空,并且将根据需要将给定的错误直接分配给country
对象。 / p>