编辑弹窗如何避免残留数据

先理解原理和示例,再练习完整口述与追问。

初值工厂;草稿;明确重置。

弹窗通常有关闭、加载详情、编辑、提交和失败等状态。重新打开应由本次记录 ID 与打开动作驱动草稿初始化;只在组件首次挂载时初始化,会在实例被保留时残留旧数据。父级已保存记录和本地草稿必须分开,才能支持取消。

打开 A 后详情慢,马上关闭并打开 B。保存当前打开版本,B 回填完成后 A 的旧详情不得再写入。关闭时清理表单校验、附件临时状态和必要请求;提交失败保留当前草稿并展示错误,成功才更新父数据或关闭。

重置成同一个共享默认对象会串状态;无条件监听 props 重新回填也可能覆盖用户未保存输入。

Vue 先检查 v-if、v-show 和缓存是否保留实例,打开时按当前记录生成草稿。React 的 useState 初始值不会因 props 后续变化自动重跑,切记录时可用明确的状态管理或稳定 recordId key 重建。两者都要隔离嵌套引用、清校验、阻止旧详情请求覆盖,并由业务决定取消是否丢草稿。