Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
618 of 1024 menu
◀ ▶

Класс 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 у полей формы.

Смотрите также

  • виджет Form,
    который объединяет поля формы
  • метод validate,
    который запускает проверку всех полей
  • метод save,
    который вызывает onSaved у полей
  • метод reset,
    который сбрасывает поля к начальным значениям
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить