Пользовательский интерфейс: виджет не изменит formData

Когда используешь ui:widget поле не изменит formData формы, в отличие от неиспользования ui:widget любое изменение в поле будет видно в formData когда форма отправлена.

Должен ли я изменить formData формы вручную, когда текст поля меняется? если так, есть ли пример для этого?

Действия по воспроизведению

  1. Создайте класс, представляющий пользовательский интерфейс, и используйте для рендеринга следующее:

return ( <div > {this.props.children}
</div> )

  1. Добавить к schema.properties"City": {type: "string", title:"City"}
  2. Добавить к schema.properties"City": { "ui:widget": DefaultInput, classNames: "col-md-4"}

куда City это имя пользовательского компонента. а также DefaultInput это класс, который представляет пользовательский интерфейс поля.

Ожидаемое поведение

Чтобы увидеть значение настраиваемого текстового поля при отправке формы: onSubmit = ({formData}) => console.log(formData);

Что я вижу это: {City: undefined}

Любая идея?

1 ответ

Если вы используете пользовательские 'ui:widgets', вы должны использовать метод onChange json-schema-form, когда значение любого элемента изменяется, и после этого вы можете получить измененное значение из формы.

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