La nueva API de autovalidación de Form y FormField
Brinda más control sobre cómo autovalidar un Form y un FormField.
Resumen
#La API de autovalidación anterior para los widgets Form y
FormField no controlaba cuándo debía ocurrir la autovalidación.
Por lo tanto, la autovalidación de estos widgets siempre ocurría en la primera compilación (first build) cuando
el widget se mostraba por primera vez al usuario, y no podías controlar
cuándo debía ocurrir la autovalidación.
Contexto
#Debido a que la API original no permitía a los desarrolladores cambiar el comportamiento de autovalidación
para validar solo cuando el usuario interactúa con el campo de formulario, añadimos una nueva API
que permite a los desarrolladores configurar cómo quieren que se comporte la autovalidación para
los widgets Form y FormField.
Descripción del cambio
#Se realizaron los siguientes cambios:
- El parámetro
autovalidateestá obsoleto (deprecated). - Se añade un nuevo parámetro llamado
autovalidateMode, un Enum que acepta valores de la clase EnumAutovalidateMode.
Guía de migración
#Para migrar a la nueva API de autovalidación, debes reemplazar el uso del parámetro obsoleto autovalidate
por el nuevo parámetro autovalidateMode.
Si deseas el mismo comportamiento que antes, puedes usar:
autovalidateMode = AutovalidateMode.always.
Esto hace que tus widgets Form y FormField se autovaliden
en la primera compilación y cada vez que cambien.
Código antes de la migración:
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return FormField(
autovalidate: true,
builder: (FormFieldState state) {
return Container();
},
);
}
}
Código después de la migración:
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return FormField(
autovalidateMode: AutovalidateMode.always,
builder: (FormFieldState state) {
return Container();
},
);
}
}
Timeline
#Introducido en la versión: 1.21.0-5.0.pre
En el lanzamiento estable: 1.22
Referencias
#Documentación de la API:
Issues relevantes:
PRs relevantes:
A menos que se indique lo contrario, la documentación de este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 2026-05-05. Ver código fuente oreportar un problema.