Revert "fix(dnfs): 主题/样式继承改为仅查直接父节点,修复 getNode 查询目标错误"

This reverts commit 1774d7d64b.
This commit is contained in:
qing committed 2026-08-12 15:38:03 +08:00
1 parent 1774d7d64b
commit 3fbf17d6cd
1 file changed
+10 -7
+10 -7
View File
@@ -697,9 +697,11 @@ function formatBytes(n) {
return n.toFixed(1) + units[i]; return n.toFixed(1) + units[i];
} }
/* ===== 父节点主题/样式继承 ===== /* ===== 祖先主题/样式继承 =====
* 当前节点不存在 theme/style 子节点时,查找父节点的对应子节点并自动注入 CSS。 * 当前节点不存在 theme/style 子节点时,沿 stack 向根搜索最近祖先的对应节点,
* 已存在的不重复搜索(hasTheme/hasStyle 分别控制)。 */ * 自动注入其 CSS。已存在的不重复搜索(hasTheme/hasStyle 分别控制)。
* 异步 getNode 可能跨导航——用 _inherit_gen 做取消,新导航的 clearAllEffects
* 会移除旧注入。 */
var _inherit_gen = 0; var _inherit_gen = 0;
function inheritThemeStyle() { function inheritThemeStyle() {
var hasTheme = false, hasStyle = false; var hasTheme = false, hasStyle = false;
@@ -711,14 +713,14 @@ function inheritThemeStyle() {
} }
if (hasTheme && hasStyle) return; if (hasTheme && hasStyle) return;
// 仅查询直接父节点
var parentPid = (stack.length === 0) ? 0 : (stack.length === 1 ? 0 : stack[stack.length - 2]);
var gen = ++_inherit_gen; var gen = ++_inherit_gen;
(async function() { (async function() {
for (var i = stack.length - 1; i >= 0; i--) {
if (hasTheme && hasStyle) break;
if (gen !== _inherit_gen) return; if (gen !== _inherit_gen) return;
try { try {
var children = await getNode(parentPid); var children = await getNode(stack[i]);
if (!Array.isArray(children)) return; if (!Array.isArray(children)) continue;
for (var j = 0; j < children.length; j++) { for (var j = 0; j < children.length; j++) {
var sp = parseSp(children[j].content); var sp = parseSp(children[j].content);
if (!sp) continue; if (!sp) continue;
@@ -734,6 +736,7 @@ function inheritThemeStyle() {
} catch (e) { } catch (e) {
console.error('继承主题/样式失败:', e); console.error('继承主题/样式失败:', e);
} }
}
})(); })();
} }