在鸿蒙Next中,退出当前页面的编辑状态通常涉及取消编辑模式或关闭相关组件。以下是常见场景及实现方法:
1. 使用TextInput组件时
通过设置TextInput的editable属性为false,或调用blur()方法使其失去焦点:
import { TextInput } from '@kit.ArkUI';
@Entry
@Component
struct EditPage {
@State inputText: string = '';
private inputController: TextInputController = new TextInputController();
build() {
Column() {
TextInput({ placeholder: '输入内容', controller: this.inputController })
.onEditChange((isEditing: boolean) => {
if (!isEditing) {
// 退出编辑状态后的逻辑
}
})
Button('退出编辑')
.onClick(() => {
this.inputController.blur(); // 使输入框失焦
})
}
}
}
2. 自定义编辑页面
若页面包含多个可编辑组件,可通过状态变量控制整体编辑模式:
@Entry
@Component
struct CustomEditPage {
@State isEditing: boolean = true; // 初始为编辑状态
build() {
Column() {
if (this.isEditing) {
// 编辑模式下的UI
TextInput({ placeholder: '编辑内容' })
Button('保存').onClick(() => {
this.isEditing = false; // 退出编辑状态
})
} else {
// 非编辑模式的展示UI
Text('已保存的内容')
Button('重新编辑').onClick(() => {
this.isEditing = true;
})
}
}
}
}
3. 使用导航返回
直接调用路由返回方法退出含编辑状态的页面:
import { router } from '@kit.ArkUI';
@Entry
@Component
struct EditPage {
build() {
Column() {
Button('返回')
.onClick(() => {
router.back(); // 返回上一页
})
}
}
}
注意事项:
- 数据保存:退出前需确认是否需要保存未提交的数据(例如通过弹窗提示)。
- 组件生命周期:页面退出时会触发
aboutToDisappear,可在此处理清理逻辑。
根据具体场景选择合适的方式即可快速退出编辑状态。