簡體   English   中英

Joi 驗證如何使用括號引用

[英]Joi validation how to ref for brackets using

{
"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(),
        }),
      ),
    })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM