首页 > 解决方案 > 使用 JSON Schema Form (Retool) 通过“Unique Select”进行多选输入

问题描述

Retool with JSON Schema Form中,我尝试进行多项选择输入,该输入无法选择已选择的选项(表示唯一选择),但我可以做的是可以选择已选择的选项(表示唯一选择)的选项,如下所示.

如下图,我可以选择已经选择的选项“English”,所以“English”被选中了两次。换句话说,即使我已经为第一个多选输入选择了“English”(意味着ununique select ),我仍然可以为第二个多选输入选择 English” :

在此处输入图像描述

这是JSON 模式

{
  "type": "object",
  "properties": {
    "languages": {
      "type": "array",
      "items": {
        "type": "string",
        enum: ['English', 'Japanese', 'Chinese'],
      },
    }
  }
}

但是,我真正想要的是“唯一选择”,而不是像上面那样的唯一选择” ,它不能选择已经选择的选项,如下所示:

在此处输入图像描述

有什么方法可以进行无法选择已选择选项的多选输入(意味着唯一选择)?

标签: reactjsjsonschemamultiple-selectreact-jsonschema-formsretool

解决方案


在“语言”下添加“uniqueItems:true ” :

{
  "type": "object",
  "properties": {
    "languages": {
      "type": "array",
      uniqueItems: true, // Here
      "items": {
        "type": "string",
        enum: ['English', 'Japanese', 'Chinese'],
      },
    }
  }
}

这样,您可以进行无法选择已选择选项的多选输入(意味着唯一选择):

在此处输入图像描述

在此处输入图像描述

另外,如果在“languages ”下添加“uniqueItems: false ” ,

{
  "type": "object",
  "properties": {
    "languages": {
      "type": "array",
      uniqueItems: true, // Here
      "items": {
        "type": "string",
        enum: ['English', 'Japanese', 'Chinese'],
      },
    }
  }
}

结果是可以选择已经选择的选项的多选输入(意味着唯一的选择):

在此处输入图像描述


推荐阅读