From 29b41a89bc0ceacf79bb9b7497c51f8c86d4cd7b Mon Sep 17 00:00:00 2001 From: Rainke Date: Wed, 13 Sep 2023 22:42:27 +0800 Subject: [PATCH] fix: skip parsing children when loop data is empty --- .npmrc | 1 + package.json | 5 ++++- packages/renderer-core/src/renderer/base.tsx | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 .npmrc diff --git a/.npmrc b/.npmrc new file mode 100644 index 000000000..7f082f23a --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmmirror.com \ No newline at end of file diff --git a/package.json b/package.json index 6a650c49b..62019b8ba 100644 --- a/package.json +++ b/package.json @@ -66,5 +66,8 @@ "resolutions": { "typescript": "4.6.2" }, - "repository": "git@github.com:alibaba/lowcode-engine.git" + "repository": "git@github.com:alibaba/lowcode-engine.git", + "volta": { + "node": "14.17.6" + } } diff --git a/packages/renderer-core/src/renderer/base.tsx b/packages/renderer-core/src/renderer/base.tsx index fd0c3cad8..216735edc 100644 --- a/packages/renderer-core/src/renderer/base.tsx +++ b/packages/renderer-core/src/renderer/base.tsx @@ -545,6 +545,7 @@ export default function baseRendererFactory(): IBaseRenderComponent { if (schema.loop != null) { const loop = this.__parseData(schema.loop, scope); + if (Array.isArray(loop) && loop.length === 0) return null; const useLoop = isUseLoop(loop, this.__designModeIsDesign); if (useLoop) { return this.__createLoopVirtualDom( @@ -710,7 +711,7 @@ export default function baseRendererFactory(): IBaseRenderComponent { } __getSchemaChildrenVirtualDom = (schema: IPublicTypeNodeSchema | undefined, scope: any, Comp: any, condition = true) => { - let children = condition ? getSchemaChildren(schema): null + let children = condition ? getSchemaChildren(schema) : null; // @todo 补完这里的 Element 定义 @承虎 let result: any = [];