我有一个如下的类型列表
const types = ['BAKERY', 'FRUITS', 'RESTAURANT', ...];
这个数组的长度是未知的。我对上述每种类型都有一个相应的类别列表,如下所述
const categories = {
RESTAURANT: ['ADDON', 'AMERICAN', 'ANDHRA', ....],
FRUITS: ['APPLE', 'BANANA', ....],
RESTAURANT: ['VEG', 'NONVEG', ....],
};
我想根据所选类型验证类别的架构。
const itemJoiSchema = Joi.object({
type: Joi.string()
.valid(...enums.types)
.required(),
category: Joi.string()
.valid(............) // Here i want to accept only the values which fall into selected type above
.uppercase()
.required()
});
如果我选择type: 'FRUITS',
,那么该类别应该只接受其他类别中的一个,['APPLE', 'BANANA', ....],
并且同样适用于其他类别。
我尝试使用 refs 但没有奏效。有人可以帮我吗?