Skip to main content

FormContext

Defined in: core/types/form-context.ts:36

Единый контекст для работы с формой

Предоставляет:

  • form - типизированный Proxy-доступ к полям формы
  • setFieldValue - безопасная установка значения (emitEvent: false)

Type Parameters

TForm

TForm

Methods

setFieldValue()

setFieldValue(path, value): void;

Defined in: core/types/form-context.ts:91

Безопасно установить значение поля по строковому пути или FieldPath

Автоматически использует emitEvent: false для предотвращения бесконечных циклов в behavior схемах.

Parameters

path

Путь к полю (строка или FieldPath)

string | FieldPathNode<TForm, unknown, unknown>

value

unknown

Новое значение

Returns

void

Example

// Сброс города при смене страны (строковый путь)
watchField(path.country, (country, ctx) => {
ctx.setFieldValue('city', null);
});

// Использование FieldPath напрямую (более типобезопасно)
watchField(path.country, (country, ctx) => {
ctx.setFieldValue(path.city, null);
});

Properties

form

readonly form: any;

Defined in: core/types/form-context.ts:67

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

Позволяет обращаться к полям напрямую через точечную нотацию:

  • ctx.form.email → FieldNode
  • ctx.form.address.city → FieldNode (вложенный)
  • ctx.form.items → ArrayNode

Example

// Получить значение
ctx.form.email.value.value

// Установить значение (⚠️ может вызвать цикл в behavior!)
ctx.form.email.setValue('new@mail.com')

// Безопасно установить значение
ctx.form.email.setValue('new@mail.com', { emitEvent: false })

// Обновить пропсы компонента
ctx.form.city.updateComponentProps({ options: cities })

// Валидация поля
await ctx.form.email.validate()

// Работа с массивами
ctx.form.items.push({ title: 'New' })
ctx.form.items.clear()