From 614dbf20a435bd6d704cf0a47d9919e4196275d3 Mon Sep 17 00:00:00 2001 From: "wanying.jwy" Date: Tue, 22 Sep 2020 14:41:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20revert=20=E4=B8=80=E6=AE=B5=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E4=BF=AE=E6=94=B9=E7=9A=84=E4=BB=A3=E7=A0=81=20&=20?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor-preset-vision/src/editor.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/editor-preset-vision/src/editor.ts b/packages/editor-preset-vision/src/editor.ts index a7d9c247a..aeb65899c 100644 --- a/packages/editor-preset-vision/src/editor.ts +++ b/packages/editor-preset-vision/src/editor.ts @@ -138,7 +138,7 @@ designer.addPropsReducer((props, node) => { }); } return newProps; -}, TransformStage.Render); +}, TransformStage.Init); designer.addPropsReducer((props: any, node: Node) => { // live 模式下解析 lifeCycles @@ -313,12 +313,12 @@ designer.addPropsReducer(deepValueParser, TransformStage.Render); // 清除空的 props value function removeEmptyProps(props: any, node: Node) { - if (props.dataSource) { + if (node.isRoot() && props.dataSource) { const online = cloneDeep(props.dataSource.online); online.forEach((item: any) => { const newParam: any = {}; - if (item.options && item.options.params && item.options.params.length) { - item.options.params.map((element: any) => { + if (Array.isArray(item?.options?.params)) { + item.options.params.forEach((element: any) => { if (element.name) { newParam[element.name] = element.value; } @@ -332,6 +332,7 @@ function removeEmptyProps(props: any, node: Node) { } // Init 的时候没有拿到 dataSource, 只能在 Render 和 Save 的时候都调用一次,理论上执行时机在 Init +// Render 和 Save 都要各调用一次,感觉也是有问题的,是不是应该在 Render 执行一次就行了?见上 filterReducer 也是一样的处理方式。 designer.addPropsReducer(removeEmptyProps, TransformStage.Render); designer.addPropsReducer(removeEmptyProps, TransformStage.Save);