Мне нужно иметь некоторые поля в UI-схеме, которые не существуют в разделе схемы - PullRequest
0 голосов
/ 28 октября 2018

Раньше я использовал jsonform в своем проекте, но сейчас я мигрирую, чтобы реагировать, поэтому я использую эту библиотеку ( реагировать-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?

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

спасибо.

1 Ответ

0 голосов
/ 28 октября 2018

Дата является просто примером для 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, подобный string, имеет несколько подопций в строке, таких как «updown».Мы устанавливаем это в ui: ui: widget (UISchema). И вот мой результат. Нижний элемент - это дата, которую вы упомянули.enter image description here

...