我有这个架构:
const YupSchema = (t: TFunction) =>
Yup.object().shape({
name: Yup.string()
.required('*')
.max(49, 'maxСharacters' + ' 50'),
areas: Yup.array().required('*'),
activities: Yup.array().of(
Yup.object().shape({
id: Yup.string().required('*'),
pictureGood: Yup.string().required(
'Required'
),
pictureBad: Yup.string().required(
'Required'
),
translations: Yup.array() /* <=== hear I need get only first element in array*/
.of(
Yup.object().shape({
name: Yup.string().required('*'),
desc: Yup.string()
.required('*')
.max(999, 'maxСharacters' + ' 1000'),
locale: Yup.string()
.required('*')
.max(999, 'maxСharacters' + ' 1000')
})
)
.required('Translations Required')
})
)
})
对于这个数据对象:
[{"id":"","activitiId":"1","pictureGood":[],"pictures":[],"translations":[{"generalDesc":"test","descGood":"test","descBad":"test","locale":"IT"},"generalDesc":"test","descGood":"test","descBad":"test","locale":"EN"}]}]
但我只需要验证数组中的第一个元素,而不是所有元素。就像这样:。
...
translations: Yup.array()[0]
.of(
Yup.object().shape({
name: Yup.string().required('*'),
感谢提供答案!