У меня возникла проблема с Джои, которую я изо всех сил пытался решить, и я использовал множество различных синтаксисов, чтобы попытаться ее решить.
По сути, у нас есть две схемы ниже.Скажем, есть 5 вариантов в раскрывающемся списке.Если в массиве есть только один элемент, требуется только arraySchemaOne, а если в нем несколько элементов, то требуются как схема 1, так и два.
const arraySchemaOne = Joi.object({
dropdown: Joi.string().valid('Option 1')
}).required();
const arraySchemaTwo = Joi.object({
dropdown: Joi.string().valid('Option 2')
}).required();
this.validationPattern = Joi.object().pattern(/\w/, Joi.object(
{
rows: Joi.ref('rows.length >= 2')
?
Joi.array().items([arraySchemaOne, arraySchemaTwo])
:
Joi.array().items([arraySchemaOne])
}
));
Если у кого-либо есть синтаксис, который может помочь в решении этой проблемы, онбыло бы замечательно.За последние несколько дней я много чего перепробовал и не смог решить эту проблему.