#reactjs #jsonschema #multiple-select #react-jsonschema-forms #retool
Вопрос:
В форме Retool со схемой JSON я попытался ввести множественный выбор, который не может выбрать уже выбранные параметры (означает уникальный выбор), но я мог бы выбрать тот, который может выбрать уже выбранные параметры (означает unique select), как показано ниже.
Как показано ниже, я могу выбрать уже выбранную опцию «Английский», поэтому «Английский» выбирается дважды. Другими словами, я все еще могу выбрать «Английский» для второго ввода с несколькими вариантами выбора, даже если я уже выбрал «Английский» для первого ввода с несколькими вариантами выбора (означает ununique select).:
Это схема JSON:
{
"type": "object",
"properties": {
"languages": {
"type": "array",
"items": {
"type": "string",
enum: ['English', 'Japanese', 'Chinese'],
},
}
}
}
Однако вместо «unique select», как указано выше, мне действительно нужен «уникальный выбор», который не может выбрать уже выбранные параметры, как показано ниже:
Существуют ли какие-либо способы ввода множественного выбора, которые не могут выбрать уже выбранные параметры(означает уникальный выбор)?
Ответ №1:
Добавьте «uniqueItems: true» в раздел «языки»:
{
"type": "object",
"properties": {
"languages": {
"type": "array",
uniqueItems: true, // Here
"items": {
"type": "string",
enum: ['English', 'Japanese', 'Chinese'],
},
}
}
}
Таким образом, вы можете ввести несколько вариантов выбора, которые не могут выбрать уже выбранные параметры(означает уникальный выбор).:
Кроме того, если вы добавите «uniqueItems: false» в разделе «языки»,
{
"type": "object",
"properties": {
"languages": {
"type": "array",
uniqueItems: true, // Here
"items": {
"type": "string",
enum: ['English', 'Japanese', 'Chinese'],
},
}
}
}
результатом является ввод множественного выбора, который может выбрать уже выбранные параметры (означает unique select):