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

Метод initState

Метод initState класса State запускается сразу после createState. Здесь задают начальные поля и подписываются на потоки. В конце вызывают super.initState(). Контекст ещё нельзя использовать для InheritedWidget.

Синтаксис

@override void initState()

Пример

Давайте прочитаем параметр виджета в initState:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: TitleLabel(title: 'abcde'), ), ), ), ); } class TitleLabel extends StatefulWidget { const TitleLabel({super.key, required this.title}); final String title; @override State<TitleLabel> createState() => _TitleLabelState(); } class _TitleLabelState extends State<TitleLabel> { late String label; @override void initState() { super.initState(); label = widget.title; } @override Widget build(BuildContext context) { return Text(label); } }

На экране initState сохранит 'abcde' из виджета в поле State.

Пример

Давайте создадим контроллер в initState:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: PrefilledField(), ), ), ), ); } class PrefilledField extends StatefulWidget { const PrefilledField({super.key}); @override State<PrefilledField> createState() => _PrefilledFieldState(); } class _PrefilledFieldState extends State<PrefilledField> { late final TextEditingController controller; @override void initState() { super.initState(); controller = TextEditingController(text: '12345'); } @override void dispose() { controller.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return TextField(controller: controller); } }

На экране поле сразу покажет '12345' после initState.

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

  • класс State,
    к которому относится initState
  • метод dispose,
    который освобождает ресурсы после initState
  • метод didChangeDependencies,
    который идёт сразу после первого initState
  • метод createState,
    который создаёт State перед initState
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить