第 3 课2026.09.01
让界面响应点击并更新计数等局部交互状态。
第 3 课:StatefulWidget 与 setState
- 日期:2026-09-01
- 课程序号:第 3 课
- 知识点:可变交互状态、
State与setState
用途
让界面响应点击并更新计数等局部交互状态。
核心概念
StatefulWidget是不可变配置,可变状态保存在State中。- 在
setState内修改字段会请求重新执行build。 - 组件只保存交互状态,不复制底层业务事实。
最小代码示例
dart
class Counter extends StatefulWidget {
const Counter({super.key});
@override
State<Counter> createState() => _CounterState();
}
class _CounterState extends State<Counter> {
int count = 0;
@override
Widget build(BuildContext context) => ElevatedButton(
onPressed: () => setState(() => count += 1),
child: Text('点击 $count 次'),
);
}3~5 分钟练习
增加一个按钮,把 count 重置为 0。
参考答案
dart
ElevatedButton(onPressed: () => setState(() => count = 0), child: const Text('重置'))与上一课的联系
上一课用 StatelessWidget 描述无状态界面;本课为确实变化的局部交互引入 StatefulWidget。