Перейти к основному содержимому

createForm()

Реализация фабричной функции

Call Signature

function createForm<T>(args): FormProxy<T>;

Defined in: core/utils/create-form.ts:333

Создать форму из FormModel + единой схемы (архитектура M1, рекомендуемый путь).

Type Parameters

T

T

Parameters

args

CreateFormFromModelArgs<T>

Модель данных, единая схема (component/componentProps/validators) и (опционально) поведение

Returns

FormProxy<T>

Типизированная форма с Proxy-доступом к полям

Example

import { createModel, createForm, validateFormModel } from '@reformer/core';
import { required, email, minLength } from '@reformer/core/validators';

interface UserForm {
email: string;
password: string;
}

const model = createModel<UserForm>({ email: '', password: '' });

const schema = {
children: [
{
value: model.$.email,
component: Input,
validators: [required(), email()],
},
{
value: model.$.password,
component: Input,
validators: [required(), minLength(8)],
},
],
};

const form = createForm<UserForm>({ model, schema });

// TypeScript знает о полях (нода привязана к сигналу модели):
form.email.setValue('test@mail.com');

// Валидация всей модели по схеме (sync + async):
const { valid } = await validateFormModel(model, schema);

Call Signature

function createForm<T>(config): FormProxy<T>;

Defined in: core/utils/create-form.ts:335

Создать форму из FormModel + единой схемы (архитектура M1, рекомендуемый путь).

Type Parameters

T

T

Parameters

config

GroupNodeConfig<T>

Returns

FormProxy<T>

Типизированная форма с Proxy-доступом к полям

Example

import { createModel, createForm, validateFormModel } from '@reformer/core';
import { required, email, minLength } from '@reformer/core/validators';

interface UserForm {
email: string;
password: string;
}

const model = createModel<UserForm>({ email: '', password: '' });

const schema = {
children: [
{
value: model.$.email,
component: Input,
validators: [required(), email()],
},
{
value: model.$.password,
component: Input,
validators: [required(), minLength(8)],
},
],
};

const form = createForm<UserForm>({ model, schema });

// TypeScript знает о полях (нода привязана к сигналу модели):
form.email.setValue('test@mail.com');

// Валидация всей модели по схеме (sync + async):
const { valid } = await validateFormModel(model, schema);

Call Signature

function createForm<T>(schema): FormProxy<T>;

Defined in: core/utils/create-form.ts:355

Создать форму только со схемой полей.

Type Parameters

T

T

Parameters

schema

FormSchema<T>

Схема полей формы

Returns

FormProxy<T>

Типизированная форма с Proxy-доступом к полям

Deprecated

Legacy / back-compat: плоская FormSchema с инлайн-значениями (value: '') — путь ДО архитектуры M1. Для нового кода используйте перегрузку createForm({ model, schema }) (значения принадлежат FormModel, валидаторы — фабрики в validators: [...]).

Example

const form = createForm<UserForm>({
email: { value: '', component: Input },
password: { value: '', component: Input },
});