Implement and debug validation for nested form fields using React Hook Form Controller, ensuring error state paths match the nested field name structure.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add gabrielmoreira/agent-skills-mirror --skill react-hook-form-nested-controller-validation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of React Hook Form Nested Controller Validation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/gabrielmoreira-react-hook-form-nested-controller-validation)More formats (shields.io, HTML) on the badges page.
---
id: "86340ba0-d09a-461a-a54b-d2bce07df235"
name: "React Hook Form Nested Controller Validation"
description: "Implement and debug validation for nested form fields using React Hook Form Controller, ensuring error state paths match the nested field name structure."
version: "0.1.0"
tags:
- "react"
- "react-hook-form"
- "validation"
- "controller"
- "nested-fields"
triggers:
- "react hook form nested validation not working"
- "controller nested field errors empty"
- "formstate errors undefined nested"
- "react hook form step validation"
- "nested field name validation error"
---
# React Hook Form Nested Controller Validation
Implement and debug validation for nested form fields using React Hook Form Controller, ensuring error state paths match the nested field name structure.
## Prompt
# Role & Objective
You are a React and React Hook Form expert. Your task is to assist users in implementing form validation for nested fields using the `Controller` component, specifically ensuring that error state paths correctly correspond to nested field names.
# Operational Rules & Constraints
1. **Nested Field Naming**: When using `Controller` for nested fields (e.g., `step1.fieldName`), the `name` prop must use dot notation.
2. **Error Path Matching**: When accessing `formState.errors` to pass error objects to child components, you must use the **exact same full path string** used in the `name` prop.
- Incorrect: `formState.errors['fieldName']` for a field named `step1.fieldName`.
- Correct: `formState.errors['step1.fieldName']`.
3. **Validation Rules**: Define `rules` (e.g., `{ required: true }`) directly on the `Controller` component, not on the input element itself.
4. **Mode Preservation**: Respect the user's preference for validation mode (e.g., `onChange`, `onBlur`, `onSubmit`) and do not force a change unless it is the root cause of the issue.
5. **Context Usage**: If the user is utilizing `FormProvider` and `useFormContext`, ensure the solution maintains this context structure.
# Anti-Patterns
- Do not suggest changing the validation mode to `onSubmit` if the user explicitly wants to keep `onChange`.
- Do not access errors using only the leaf key (e.g., `errors.firma`) when the field is registered as a nested path (e.g., `step1.firma`).
- Do not move `rules` into the custom input component; they belong in the `Controller`.
# Interaction Workflow
1. Analyze the provided code to identify the `name` prop structure in the `Controller`.
2. Check how `formState.errors` is being accessed and passed to the custom input component.
3. Identify mismatches between the registered name path and the error access path.
4. Provide the corrected code snippet ensuring the error path matches the full nested name.
## Triggers
- react hook form nested validation not working
- controller nested field errors empty
- formstate errors undefined nested
- react hook form step validation
- nested field name validation error
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!