Orientação gerada a partir de informações públicas. Apenas para referência.
go_form é um pacote Flutter/Dart que fornece um controlador genérico para gerenciar o estado de entrada de formulários, validação, erros e foco. Ele simplifica o manuseio de campos de formulário ao oferecer valores iniciais, validação em tempo real, rastreamento de erros e gerenciamento de foco. Projetado para lógica de formulário limpa e reutilizável, reduz o código repetitivo e aumenta a produtividade do desenvolvedor. O pacote suporta todas as principais plataformas, incluindo Android, iOS, Web, macOS, Windows e Linux, tornando-o ideal para aplicativos multiplataforma. Sua API leve e intuitiva permite integração sem problemas em formulários existentes.
Casos de uso
Gerenciando formulários dinâmicos com múltiplas entradas
Implementando validação em tempo real
Manipulando o envio do formulário com feedback de erro
Criando componentes de formulário reutilizáveis
Simplificando a gestão de estado do formulário entre telas
Suporte à navegação de foco entre campos
Principais recursos
Controlador de campo de entrada genérico
Suporte de validação em tempo real
Gerenciamento de mensagens de erro
Controle de foco para campos de entrada
Configuração de valor inicial
Compatibilidade multiplataforma
Indicado para
Desenvolvedores construindo formulários complexos no Flutter
Equipes que buscam lógica de formulário reutilizável
Aplicativos que exigem validação de entrada robusta
Projetos direcionados para múltiplas plataformas
Desenvolvedores front-end que querem mínimo boilerplate
Considerações
Requer conhecimento sobre gerenciamento de estado do Flutter
Pode ser necessário estilização adicional para a interface personalizada
Não adequado para formulários simples e pontuais
Depende da inicialização correta para evitar erros em tempo de execução
Limitado a casos de uso específicos do formulário sem gerenciamento mais amplo de estado
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
GoForm is a powerful library for managing forms in Flutter.
It allows you to dynamically create, validate, and manage form state
without the need to manually handle controllers for each field.
Features of GoForm
Smart validation with minimal code
GoForm automatically validates input using standard validators,
eliminating the need to manually write validation logic for each field.
Flexibility for any field types
Create any form elements — from simple text fields and checkboxes
to complex file pickers and dropdown menus.
GoForm seamlessly adapts to any UI structure.
Centralized error management
Set and reset errors anywhere in your code,
without needing to use setState().
Error display is fully automated and updates without unnecessary re-renders.
Debounced value changes
Fields can debounce rapid input changes using debounceDuration, reducing unnecessary processing or validations.
Asynchronous validation
Add asyncValidator to a field to perform validation that requires waiting for server responses or background
checks.
Use formController.validateAsync() to trigger validation across all fields.
Advanced focus management
The FormController provides built-in methods for controlling focus between fields:
focus(String name) – focuses the field with the given name.
unfocus(String name) – removes focus from the specified field.
unfocusAll() – removes focus from all fields.
focusNext(String name) – moves focus to the next field.
focusPrevious(String name) – moves focus to the previous field.
focusFirstError() – focuses the first field that has a validation error.
hasFocus(String name) – returns true if the field is currently focused.
hasError(String name) – returns true if the field currently has an error.
Comparison of standard Flutter tools and GoForm
Feature
GoForm
Standard Flutter
Field management
Fields are registered automatically
Each field requires a TextEditingController
Field flexibility
Supports any fields (text, files, checkboxes)
Only TextFormField and standard widgets
Error handling
Errors are set via FormController.setError()
Errors can only be handled in validator
Centralized state management
A single FormController manages the entire form
Field states must be tracked manually
Retrieving values
formController.getValues() returns a Map<String, dynamic>
Requires accessing TextEditingController.text
Resetting fields
formController.resetAllFields()
Controllers must be cleared manually
Handling server-side errors
Errors can be set using setError()
Errors must be stored in setState()
How to Install
Add the dependency to pubspec.yaml:
dependencies:go_form:latest_version
Replace latest_version with the latest version from pub.dev.
Quick Start
Creating a Form with Dynamic Fields
In DynamicForm, simply pass a list of fields and a controller:
You can override the onInit method inside your custom field to perform one-time setup logic.
This is useful for asynchronous operations, such as fetching initial data or triggering a service.