StatefulWidget и State в Flutter
Изменяемый экран описывают двумя классами.
Оболочка с const-конструктором
и настройками снаружи - это
StatefulWidget.
Дольше одного вызова build живёт
объект
State:
в нём лежат поля счётчика, флагов, списков.
У StatefulWidget переопределяют
createState и возвращают новый
экземпляр своего State. Метод
build пишут уже в классе
State: он получает BuildContext
и возвращает дерево виджетов. Параметры
родительского виджета читают через
widget внутри State.
Поле можно поменять вручную, но надпись
не изменится без setState:
import 'package:flutter/material.dart';
void main() {
runApp(const MaterialApp(home: HomePage()));
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> { // library-private
int taps = 0;
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text('Taps so far: $taps'),
),
);
}
}
Создайте StatefulWidget
GreetingPage. В State
заведите поле:
String name = 'Guest';
В build выведите Text
со строкой 'Hello, ' и значением
name.