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

Класс GlobalKey

Класс GlobalKey параметризуют типом State, например GlobalKey<FormState>. По ключу вызывают currentState и currentContext. Ключ должен быть уникален в пределах приложения.

Синтаксис

GlobalKey<FormState>()

Параметры

Параметр Описание
currentState State виджета с этим ключом. Тип задают в угловых скобках, например FormState.
currentContext Контекст виджета с этим ключом. По нему можно прочитать размер и положение.

Пример

Давайте прочитаем текст через GlobalKey у Form:

import 'package:flutter/material.dart'; final formKey = GlobalKey<FormState>(); class LabelForm extends StatefulWidget { const LabelForm({super.key}); @override State<LabelForm> createState() => _LabelFormState(); } class _LabelFormState extends State<LabelForm> { @override Widget build(BuildContext context) { return Form( key: formKey, child: Text('abcde'), ); } } void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: LabelForm(), ), ), ), ); }

На экране Form с ключом formKey покажет строку 'abcde', а currentState формы доступен через GlobalKey.

Пример

Давайте вызовем validate через GlobalKey:

import 'package:flutter/material.dart'; final fieldKey = GlobalKey<FormFieldState<String>>(); void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: TextFormField( key: fieldKey, initialValue: '12345', ), ), ), ), ); }

На экране поле с текстом '12345' связано с GlobalKey fieldKey для validate и save.

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

  • класс Key,
    базовый тип GlobalKey
  • виджет Form,
    которому часто задают GlobalKey
  • виджет TextFormField,
    состояние которого читают по ключу
  • класс ValueKey,
    когда доступ к State снаружи не нужен
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить