flutter-form
Installation
SKILL.md
Flutter Form Validation
Goal
Implements stateful form validation in Flutter using Form, TextFormField, and GlobalKey<FormState>. Manages validation state efficiently without unnecessary key regeneration and handles user input validation workflows. Assumes a pre-existing Flutter environment with Material Design dependencies available.
Decision Logic
When implementing form validation, follow this decision tree to determine the flow of state and UI updates:
- User triggers submit action:
- Call
_formKey.currentState!.validate().
- Call
- Does
validate()returntrue?- Yes (Valid): Proceed with data processing (e.g., API call, local storage). Trigger success UI feedback (e.g.,
SnackBar, navigation). - No (Invalid): The
FormStateautomatically rebuilds theTextFormFieldwidgets to display theStringerror messages returned by their respectivevalidatorfunctions. Halt submission.
- Yes (Valid): Proceed with data processing (e.g., API call, local storage). Trigger success UI feedback (e.g.,
Instructions
- Initialize the Stateful Form Container
Create a
StatefulWidgetto hold the form. Instantiate aGlobalKey<FormState>exactly once within theStateclass to prevent resource-expensive key regeneration duringbuildcycles.import 'package:flutter/material.dart';