Класс FormState
Класс FormState получают через ключ или of.
Синтаксис
formKey.currentState!.validate()
Методы
| Метод | Описание |
|---|---|
validate |
Запускает validator у всех полей Form и возвращает true, если ошибок нет. Давайте разберём вызов на примерах.
|
save |
Вызывает onSaved у всех полей Form с текущими значениями. Давайте разберём вызов на примерах.
|
reset |
Сбрасывает все поля Form к initialValue. Давайте разберём вызов на примерах.
|
Пример
Давайте проверим форму кнопкой:
import 'package:flutter/material.dart';
void main() => runApp(const MaterialApp(home: Demo()));
class Demo extends StatefulWidget {
const Demo({super.key});
@override
State<Demo> createState() => _DemoState();
}
class _DemoState extends State<Demo> {
final key = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Form(
key: key,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
TextFormField(decoration: const InputDecoration(labelText: 'abcde')),
ElevatedButton(onPressed: () => key.currentState!.validate(), child: const Text('go')),
],
),
);
}
}
На экране поле и кнопка, validate проверит поле.
Пример
Давайте сохраним через save:
import 'package:flutter/material.dart';
void main() => runApp(const MaterialApp(home: Demo()));
class Demo extends StatefulWidget {
const Demo({super.key});
@override
State<Demo> createState() => _DemoState();
}
class _DemoState extends State<Demo> {
final key = GlobalKey<FormState>();
@override
Widget build(BuildContext context) {
return Form(
key: key,
child: ElevatedButton(onPressed: () => key.currentState!.save(), child: const Text('12345')),
);
}
}
На экране кнопка вызывает save у полей формы.