Mobile

业务哨兵值不是空值:修复过度规范化导致的流程阻塞

一个手持终端拣货流程从后端收到了目标字段,但当该字段使用约定的星号哨兵值时,页面不显示目标,暂存和确认按钮也无法通过必填校验。

普通目标值一直正常,因此最初看起来像是接口偶发缺字段。沿着响应、页面状态和提交参数逐层检查后,问题被定位到客户端的一段“规范化”逻辑。

证据

后端响应中存在字面星号,数据模型也允许字符串原样保存。客户端在把字段写入页面状态前,却主动将星号转换成空串。

这个转换影响的不只是显示文本。同一个规范化结果还被用于:

  • 商品卡片和确认弹窗回填;
  • 目标字段的必填判断;
  • 暂存及确认请求的目标参数。

因此一个看似只为界面清理而写的条件,同时切断了展示、校验和提交三条链路。

根因

星 …