30b190363e81f2e768009e7f6e039252dc9427f6
## Bug 上一批把 9 个记录分支从弹层整体搬到 addrecord 页时,连带删掉了带 wx:if 的 第一支(weight),整条链从 wx:elif 开头。小程序直接报 Bad attr `wx:elif` with message: `wx:if not found, then something must be wrong` 整个组件编译不过 —— 不是少个样式,是弹层完全打不开。把现在的链首 (就医前摘要)改成 wx:if。 ## 检查器补这一条 这种错「删对了 9 支、漏改 1 个属性」就会发生,而且是编译期爆炸, 检查器原来完全看不见。 判断必须靠真正的标签栈。中间走错两次,都值得写下来: **① 按缩进深度分链 —— 不行。** 这个项目里 scroll-view 和它的子节点缩进 是一样深的,「同层」判断会把父节点当兄弟节点。而且更糟的是它不报错: 前一条链的 wx:if 被当成这一条的链首,注入错误也查不出来,是个假绿。 **② 给 void 标签列白名单 —— 不行。** wxml 里 <image></image> 是显式闭合的, 把它当 void 就变成「开标签不入栈、闭标签却弹栈」,一路把父级弹光,8 个误报。 只认 /> 就够。 **③ 自闭合不能用单独的捕获组。** 属性那段是贪婪的,会把 /> 里的 / 一起吃掉, (\/?) 永远匹配空。多行写的 <input ... /> 因此被当成非自闭合入了栈, 把整份栈层级带偏,7 个误报。改成从 attrs 尾部 /\/\s*$/ 判断。 ## 自测 把链首改回 wx:elif → 精确报第 96 行那一处,其余 24 个 wxml 零误报; 还原 → 恢复绿。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Description
No description provided
Languages
Go
40.2%
HTML
25.1%
JavaScript
21.1%
TypeScript
12.9%
CSS
0.4%
Other
0.2%