# ctx.getValue()

В сценариях редактируемых полей, таких как JSField и JSItem, этот метод используется для получения актуального значения текущего поля. В сочетании с `ctx.setValue(v)` он обеспечивает двустороннее связывание с формой.

## Применимые сценарии

| Сценарий | Описание |
|------|------|
| **JSField** | Чтение пользовательского ввода или текущего значения формы в редактируемых пользовательских полях. |
| **JSItem** | Чтение значения текущей ячейки в редактируемых элементах таблиц или подтаблиц. |
| **JSColumn** | Чтение значения поля соответствующей строки при рендеринге столбца таблицы. |

> **Примечание**: `ctx.getValue()` доступен только в контекстах RunJS с привязкой к форме; он отсутствует в сценариях без привязки к полям, таких как рабочие процессы или правила связей.

## Определение типа

```ts
getValue<T = any>(): T | undefined;
```

- **Возвращаемое значение**: Текущее значение поля, тип которого определяется типом элемента формы поля; может возвращать `undefined`, если поле не зарегистрировано или не заполнено.

## Порядок получения значения

`ctx.getValue()` получает значения в следующем порядке:

1. **Состояние формы**: Приоритетное чтение из текущего состояния формы Ant Design.
2. **Резервное значение**: Если поле отсутствует в форме, используется начальное значение поля или props.

> Если форма еще не завершила рендеринг или поле не зарегистрировано, метод может вернуть `undefined`.

## Примеры

### Рендеринг на основе текущего значения

```ts
const current = ctx.getValue();
if (current == null || current === '') {
  ctx.render(<span>Пожалуйста, сначала введите содержимое</span>);
} else {
  ctx.render(<span>Текущее значение: {current}</span>);
}
```

### Двустороннее связывание с setValue

```tsx
const { Input } = ctx.libs.antd;

// Чтение текущего значения в качестве значения по умолчанию
const defaultValue = ctx.getValue() ?? '';

ctx.render(
  <Input
    defaultValue={defaultValue}
    onChange={(e) => ctx.setValue(e.target.value)}
  />
);
```

## Связанные разделы

- [ctx.setValue()](./set-value.md) — установка значения текущего поля, используется вместе с `getValue` для двустороннего связывания.
- [ctx.form](./form.md) — экземпляр формы Ant Design для чтения и записи других полей.
- `js-field:value-change` — событие контейнера, возникающее при изменении внешних значений, используется для обновления отображения.