第 17 课2026.09.21
详情页保存成功后只更新对应列表行。
第 17 课:返回后刷新列表行
- 日期:2026-09-21
- 课程序号:第 17 课
- 知识点:返回后刷新列表行
用途或适用场景
详情页保存成功后只更新对应列表行。
核心概念
沿用上一课的 saved 结果;true 表示详情页已保存,再更新原列表行。
最小代码或操作示例
text
onTap: () async {
final saved = await Navigator.push<bool>(
context,
MaterialPageRoute(builder: (detailContext) => Scaffold(
body: TextButton(
onPressed: () => Navigator.pop(detailContext, true),
child: Text(lessons[index]),
),
)),
);
if (!context.mounted) return;
if (saved == true) {
setState(() => lessons[index] = "已完成:${lessons[index]}");
}
}3~5 分钟练习
从详情页用 Navigator.pop(context, false) 返回。
参考答案
saved 为 false,原列表行不更新。
与上一课的联系
沿用第 16 课 Navigator.push<bool> 得到的 saved 和详情页 pop(true);本课只新增返回后检查挂载状态并更新 lessons[index];完成练习后下一课可把这段异步处理移入 State 方法。
时效校验
时效校验:2026-09-24(Flutter 3.47.2 当前文档;Navigator.pop 结果与 BuildContext.mounted 均未见废弃说明;官方 API 页未单独标注最低 SDK)。