From 2a2ac73c9082fa92403db5b6277bada280ca8707 Mon Sep 17 00:00:00 2001 From: skie1997 Date: Thu, 11 Sep 2025 22:43:28 +0800 Subject: [PATCH] fix: bad case of traverse aniamtion config --- packages/vchart/src/animation/utils.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/vchart/src/animation/utils.ts b/packages/vchart/src/animation/utils.ts index 39512cc26c..3863f9612a 100644 --- a/packages/vchart/src/animation/utils.ts +++ b/packages/vchart/src/animation/utils.ts @@ -181,8 +181,8 @@ function produceOneByOne( const userDelayAfter = isFunction(delayAfter) ? delayAfter(datum, g, params) : isValidNumber(delayAfter) - ? delayAfter - : 0; + ? delayAfter + : 0; let oneByOneTime = isFunction(oneByOne) ? oneByOne(datum, g, params) : oneByOne; if (oneByOneTime === false) { return userDelayAfter; @@ -260,7 +260,8 @@ function traverseSpec(spec: any, transform: (node: any, key: string | number) => spec[index] = transform(spec[index], index); traverseSpec(spec[index], transform, excludeKeys); }); - } else if (isObject(spec)) { + } else if (isObject(spec) && typeof spec !== 'function') { + // spec如果是函数, 无需遍历; 一个bad case: 线上环境在function的prototype上挂载了某个属性导致这里遍历的时候出现了死循环 for (const key in spec) { if (!excludeKeys.includes(key)) { spec[key] = transform(spec[key], key);