弹窗重开数据不对
先理解原理和示例,再练习完整口述与追问。
回答要点
草稿归属;初值工厂;回填身份;清校验。
原理拆解
弹窗通常有关闭、加载详情、编辑、提交和失败等状态。重新打开应由本次记录 ID 与打开动作驱动草稿初始化;只在组件首次挂载时初始化,会在实例被保留时残留旧数据。父级已保存记录和本地草稿必须分开,才能支持取消。
示例与推演
打开 A 后详情慢,马上关闭并打开 B。保存当前打开版本,B 回填完成后 A 的旧详情不得再写入。关闭时清理表单校验、附件临时状态和必要请求;提交失败保留当前草稿并展示错误,成功才更新父数据或关闭。
易错点
重置成同一个共享默认对象会串状态;无条件监听 props 重新回填也可能覆盖用户未保存输入。
参考回答可直接练习口述
先看弹窗关闭是隐藏还是销毁,再确认草稿由谁持有。每次开始编辑时用目标记录创建新的草稿,关闭时按业务丢弃或保留,重置用统一初值工厂并清理校验。详情接口绑定记录 ID 和请求标识,旧记录请求晚返回时不能覆盖新记录。需要在字段渲染后触发表单清校验时才等 nextTick,不能靠延时掩盖错误的数据初始化。