一句话
记录详情页头的自定义动作(record_header 挂载)点击后,平台负责往请求体注入当前记录 id(recordId)——但页头渲染存在两种 DOM 变体,其中一种变体下不注入,端点收到的请求体没有 recordId,回 missing_record_id。用户侧表现为「偶尔点一下没反应,再点一次就好」。
环境
- @objectstack/*@17.0.0(GA);下游业务项目(os-project-titanwind-ehr,私有)真机 Console 实测发现
- 与对象、与动作配置无关:该项目所有 record_header 自定义动作(多个对象、同一标准配方)均受影响
量化复现
同一颗页头【删除】动作按钮,同一记录页,连点 10 次:
- 9 次:请求体带
recordId,动作正常执行; - 1 次:请求体不带
recordId → 服务端 missing_record_id; - 关键相关性:失败那次抓包时,页头 DOM 层级与成功时不同(两种变体与是否注入一一对应);
- 换一次页面渲染即恢复。
疑似与记录页头的 hydration/半加载窗口有关(页头在加载早期与稳定后渲染树不同,注入逻辑只挂在其中一种变体上)。
期望
两种页头渲染形态下,record_header 动作的 recordId 注入行为一致;或在拿不到记录 id 时禁用按钮而非发出残缺请求。
备注
下游项目按「平台能覆盖的问题不自造补丁」原则未做任何绕行;抓包与 DOM 对照证据存于该项目取证分支,需要可提供摘录。
一句话
记录详情页头的自定义动作(record_header 挂载)点击后,平台负责往请求体注入当前记录 id(
recordId)——但页头渲染存在两种 DOM 变体,其中一种变体下不注入,端点收到的请求体没有 recordId,回missing_record_id。用户侧表现为「偶尔点一下没反应,再点一次就好」。环境
量化复现
同一颗页头【删除】动作按钮,同一记录页,连点 10 次:
recordId,动作正常执行;recordId→ 服务端missing_record_id;疑似与记录页头的 hydration/半加载窗口有关(页头在加载早期与稳定后渲染树不同,注入逻辑只挂在其中一种变体上)。
期望
两种页头渲染形态下,record_header 动作的 recordId 注入行为一致;或在拿不到记录 id 时禁用按钮而非发出残缺请求。
备注
下游项目按「平台能覆盖的问题不自造补丁」原则未做任何绕行;抓包与 DOM 对照证据存于该项目取证分支,需要可提供摘录。