问题描述
{
"visibleFields": {
"design.content.buttons.action.type": {
"SHOW_CLOSE": true,"URL": true,"CALL_PHONE": true
},"design.content.formFields": false,"success": false,"design.appearance.closeButtons": true,"design.appearance.backgroundOverlay": true,"design.appearance.button": true,"design.content.privacyPolicy": false,"design.content.wheel": false,"design.appearance.formFields": false,"design.content.description": true,"design.appearance.customCss": true,"design.content.headline": true,"design.appearance.displayEffect": true,"design.layout.floatingbar": true,"design.layout": true,"design.appearance.body": true,"design.content.buttons": true,"design.content.images": false
}}
我有上面的 json 结构。我想使用 ref 获取“visibleFields.design.content.images”,但它不起作用。通常我可以像这样使用“visibleFields['design.content.images']”来访问它,但我无法在模式中实现它。我该如何解决这个问题?
images: Joi.when(Joi.ref('...visibleFields.design.content.images'),{
is: false,then: Joi.array().length(0),otherwise: Joi.array().items(
Joi.object().keys({
type: Joi.string(),label: Joi.string(),backgroundColor: Joi.string(),size: Joi.number().integer(),horizontal: Joi.number().integer(),vertical: Joi.number().integer(),repeatMode: Joi.string(),hide: Joi.boolean(),value: Joi.string().uri(),}),),})
解决方法
您可以使用 .
选项删除 { seperator: false }
分隔符
images: Joi.when(Joi.ref('...visibleFields.design.content.images',{ seperator: false }),{
is: false,then: Joi.array().length(0),otherwise: Joi.array().items(
Joi.object().keys({
type: Joi.string(),label: Joi.string(),backgroundColor: Joi.string(),size: Joi.number().integer(),horizontal: Joi.number().integer(),vertical: Joi.number().integer(),repeatMode: Joi.string(),hide: Joi.boolean(),value: Joi.string().uri(),}),),})