Пользовательский интерфейс: виджет не изменит formData
Когда используешь ui:widget
поле не изменит formData
формы, в отличие от неиспользования ui:widget
любое изменение в поле будет видно в formData
когда форма отправлена.
Должен ли я изменить formData
формы вручную, когда текст поля меняется? если так, есть ли пример для этого?
Действия по воспроизведению
- Создайте класс, представляющий пользовательский интерфейс, и используйте для рендеринга следующее:
return (
<div >
{this.props.children}
</div>
)
- Добавить к
schema.properties
"City": {type: "string", title:"City"}
- Добавить к
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, когда значение любого элемента изменяется, и после этого вы можете получить измененное значение из формы.