第 58 课2026.09.22
关闭失败后让用户明确知道同一个按钮可以重试,不新增第二份关闭状态。
第 58 课:失败后按钮提示重试
- 日期:2026-09-22
- 课程序号:第 58 课
- 知识点:根据失败提示切换按钮文案
用途或适用场景
关闭失败后让用户明确知道同一个按钮可以重试,不新增第二份关闭状态。
核心概念
按钮文字只读取上一课的 errorMessage、closing 与 handle.isClosed();错误提示属于界面状态,关闭事实仍只由 Handle 管理。
最小代码或操作示例
在第 57 课 ClosePage.build() 中,只替换原来的 Button 文本表达式:
ts
Button(this.handle.isClosed() ? '已关闭' :
this.closing ? '关闭中…' :
this.errorMessage.length > 0 ? '重试关闭' : '关闭')
.enabled(!this.closing && !this.handle.isClosed())
.onClick(() => { this.close() })3~5 分钟练习
让第一次 close() 失败,确认按钮显示“重试关闭”;第二次成功后确认显示“已关闭”。
参考答案
失败后 errorMessage.length > 0 选择“重试关闭”;成功后 handle.isClosed() 优先选择“已关闭”。
与上一课的联系
继承第 57 课的 ClosePage、errorMessage、closing 和 handle;本课只改变按钮文案的条件选择,不改关闭调用;完成后下一课可在重试开始时清除旧提示。
时效校验
时效校验:2026-09-24(华为当前 Button 与禁用控制文档;本机 HarmonyOS 26.0.0/API 26 SDK)。Button、enabled、onClick 当前可用且本机声明未见 @deprecated 或 @useinstead。