From 69cda3e076d2d73d3a5335d15b7b28c73294bdea Mon Sep 17 00:00:00 2001 From: "wanying.jwy" Date: Tue, 22 Sep 2020 12:40:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20save=20=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=A9=BA=E7=9A=84=20props?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor-preset-vision/src/editor.ts | 41 +++++++++++---------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/packages/editor-preset-vision/src/editor.ts b/packages/editor-preset-vision/src/editor.ts index 1ed7b3757..a7d9c247a 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.Init); +}, TransformStage.Render); designer.addPropsReducer((props: any, node: Node) => { // live 模式下解析 lifeCycles @@ -311,26 +311,29 @@ designer.addPropsReducer(stylePropsReducer, TransformStage.Render); // 国际化 & Expression 渲染时处理 designer.addPropsReducer(deepValueParser, TransformStage.Render); -designer.addPropsReducer((props: any, node: Node) => { - if (node.isRoot()) { - if (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 (element.name && element.value) { - newParam[element.name] = element.value; - } - }); - item.options.params = newParam; - } - }); - props.dataSource.list = online; - } +// 清除空的 props value +function removeEmptyProps(props: any, node: Node) { + if (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 (element.name) { + newParam[element.name] = element.value; + } + }); + item.options.params = newParam; + } + }); + props.dataSource.list = online; } return props; -}, TransformStage.Render); +} + +// Init 的时候没有拿到 dataSource, 只能在 Render 和 Save 的时候都调用一次,理论上执行时机在 Init +designer.addPropsReducer(removeEmptyProps, TransformStage.Render); +designer.addPropsReducer(removeEmptyProps, TransformStage.Save); skeleton.add({ area: 'mainArea',