Мне нужно иметь некоторые поля в UI-схеме, которые не существуют в разделе схемы

Раньше я использовал jsonform в своем проекте, но теперь я мигрирую, чтобы реагировать, поэтому я использую эту библиотеку ( Reaction-jsonschema-form). в jsonform я могу иметь некоторые наборы полей в разделе формы, которые не были в схеме. как это:

{
  "schema":
    {
      "firstName": {
      "type": "string",
      "title": "Is JSON Form useful?",
      }
    },
  "form": [
     {
      "key": "firstName",
      "type": "text",
     }, 
     {
      "title" : "this is non-schema",
      "type": "fieldset"
     }
   ]
}

Вы можете проверить это на детской площадке jsonschema. Пожалуйста, помогите мне сделать что-то похожее на код в реагирующей-jsonschema-форме. Как я могу иметь некоторые поля, которые не в схеме, но я хочу показать их в uiSchema?

Реакция jsonschema-form также имеет игровую площадку. Вы можете найти поле с именем "дата". Он добавляет в uiSchema, но не существует в разделе схемы. Также ничего не показывает для этого поля в результате. Я не знаю, почему они используют это, если это не могло быть там!!!!

Благодарю.

1 ответ

Решение

Дата - просто пример для uiSchema, и игровая площадка просто не использует это время. И там я создаю пример, чтобы помочь пониманию.

JSONSchema

{
  "title": "An example form",
  "description": "A simple form example",
  "type": "object",
  "required": [
    "firstName",
    "lastName"
  ],
  "properties": {
    "firstName": {
      "type": "string",
      "title": "First name"
    },
    "age": {
      "type": "integer",
      "title": "Age"
    },
    "telephone": {
      "type": "string",
      "title": "Telephone",
      "minLength": 10
    },
    "date": {
      "type": "string",
      "title": "Date"
    }
  }
}

UISchema

{
  "firstName": {
    "ui:autofocus": true,
    "ui:emptyValue": ""
  },
  "age": {
    "ui:widget": "updown",
    "ui:title": "Age of person",
    "ui:description": "(earthian year)"
  },
  "date": {
    "ui:widget": "alt-datetime"
  },
  "telephone": {
    "ui:options": {
      "inputType": "tel"
    }
  }
}

В JSONSchema есть четыре свойства:firstName, age, phone, date. И в UISchema четыре:firstName, age, phone, date. Они одинаковы. Каждый в JSONSchema имеет один или менее в UISchema. Тип в JSONSchema похож на строка, имеет несколько подопций в строке, таких как "обновление". Мы устанавливаем это в ui:ui:widget(UISchema). И вот мой результат. Нижний элемент - это дата, которую вы упомянули.

Другие вопросы по тегам