createFormFromModel()
function createFormFromModel<T>(args): FormProxy<T>;
Defined in: core/utils/create-form.ts:220
Собрать форму из FormModel и единой схемы (низкоуровневая фабрика архитектуры M1).
Значения принадлежат модели (источник истины), ноды формы держат UI/валидационное состояние и
ссылаются на сигналы модели по идентичности (node.value === model.$.path). Обходит структуру
модели, привязывает конфиг поля (component/componentProps/validators) из схемы, материализует
top-level массивы как ModelArrayNode, заполняет реестр сигнал→нода (для enableWhen/
роутинга ошибок) и, при наличии, запускает декларативное поведение (cleanup живёт на форме).
Обычно вызывается неявно через createForm с аргументом { model, schema } — прямой вызов
нужен редко (например, для построения формы элемента массива).
Type Parameters
T
T
Тип модели данных формы
Parameters
args
Модель, единая схема и (опционально) декларативное поведение CreateFormFromModelArgs
Returns
FormProxy<T>
Типизированная форма с Proxy-доступом к полям FormProxy
Example
import { createModel, createFormFromModel } from '@reformer/core';
interface Form {
email: string;
profile: { name: string; age: number };
}
const model = createModel<Form>({ email: '', profile: { name: '', age: 0 } });
const schema = {
component: Section,
children: [
{ value: model.$.email, component: Input, validators: [required] },
{ value: model.$.profile.name, component: Input },
],
};
const form = createFormFromModel<Form>({ model, schema });
// Двусторонняя связь нода ↔ модель:
form.email.setValue('user@mail.com');
console.log(model.email); // 'user@mail.com'
See
createForm - основная фабрика (диспетчеризует сюда при аргументе { model, schema })