渐进式编程课
鸿蒙 目录
第 60 课2026.09.24

关闭结束后,在按钮下方给出清楚的结果,同时避免“已关闭”和失败提示并存。

第 60 课:互斥显示关闭结果

  • 日期:2026-09-24
  • 课程序号:第 60 课
  • 知识点:用同一个状态区域呈现成功或失败

用途或适用场景

关闭结束后,在按钮下方给出清楚的结果,同时避免“已关闭”和失败提示并存。

核心概念

在 closing 结束的界面刷新点先判断 handle.isClosed(),再判断界面错误提示;两个分支互斥,且不复制资源的业务状态。

最小代码或操作示例

在第 59 课 ClosePage.build() 的 Column 内保留原按钮,将原失败 Text 替换为:

ts
if (!this.closing && this.handle.isClosed()) {
  Text('资源已关闭')
} else if (!this.closing && this.errorMessage.length > 0) {
  Text(this.errorMessage)
}

3~5 分钟练习

分别模拟一次失败、随后重试成功,检查同一时刻显示的结果文字。

参考答案

失败时只显示“关闭失败,请重试”;重试成功后只显示“资源已关闭”。

与上一课的联系

沿用第 59 课重试时清空的 errorMessage、第 58 课按钮文案及 Handle 的 isClosed();本课只把结果文字改为互斥分支;完成后下一课可为结果提示补充无障碍说明。

时效校验

时效校验:2026-09-24(华为当前 Text 与 Button 文档;本机 HarmonyOS 26.0.0/API 26 SDK)。Text 自 API 7 可用,本机声明未见 @deprecated 或 @useinstead;示例未使用 any、unknown 或旧全局路由。

官方参考