---
url: "https://vueda.dev/v3/reference/api/js/use/useFormModelFieldSlots/functions/useFormModelFieldSlots.md"
title: "useFormModelFieldSlots"
---

# useFormModelFieldSlots

## Overview

Provide a `FormModel`'s per-field slots to every `FormModelField` it contains, and report per-field
slots that cannot reach a field.

Two mistakes throw in development and log a console warning in production:
 - A `field(<path>)` or `widget(<path>)` slot whose path starts in no field of the form model.
 - A `#fields` layout that renders no `FormModelField` while the form model has per-field slots.
   A plain `FieldRenderer` does not receive the form model's slots.

Both checks run when the form model's fields load, after the fields render.

## Signature

`useFormModelFieldSlots(props, formModel, slots)`

### Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| <span id="param-props">props</span> | `object` | yes | The `FormModel` props. |
| <span id="param-formModel">formModel</span> | `object` | yes | The reactive form model. |
| <span id="param-slots">slots</span> | `Readonly` | yes | The `FormModel`'s own `useSlots()` output. |

#### props Properties

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="param-props-app">app</span> | `string` |  |  |  |
| <span id="param-props-model">model</span> | `string` |  |  |  |

#### formModel Properties

| Name | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| <span id="param-formModel-app">app</span> | `string` |  |  | The app name to load form configuration for |
| <span id="param-formModel-baseFieldNames">baseFieldNames</span> | `ReadonlySet` |  |  | The field names that are not expanded. |
| <span id="param-formModel-expand">expand</span> | `typeOperator` |  |  | The fields to expand, either passed in or from config. |
| <span id="param-formModel-expandDetails">expandDetails</span> | `object` |  |  | The merged expandDetails, either passed in, from config or from server info. |
| <span id="param-formModel-expandedFieldNames">expandedFieldNames</span> | `ReadonlySet` |  |  | The field names that are expanded and base. |
| <span id="param-formModel-expansionFieldNames">expansionFieldNames</span> | `ReadonlySet` |  |  | The field names that are expanded. |
| <span id="param-formModel-fieldComponents">fieldComponents</span> | `object` |  |  | The field components to use, either passed in or as a result of fieldObject or expandObject. |
| <span id="param-formModel-fieldDetails">fieldDetails</span> | `object` |  |  | The merged fieldDetails, either passed in, from config or from server info. |
| <span id="param-formModel-fields">fields</span> | `typeOperator` |  |  | The fields to display, either passed in or from config. |
| <span id="param-formModel-model">model</span> | `string` |  |  | The model name to load form configuration for |
| <span id="param-formModel-view">view</span> | `string` |  |  | The view name if wanting to use view specific configuration. |
| <span id="param-formModel-widgetComponents">widgetComponents</span> | `object` |  |  | The widget components to use, either passed in or as a result of fieldObject or expandObject. |

### Returns

`void`

## Source

`client/lib/use/useFormModelFieldSlots.js:50`
