diff --git a/packages/designer/src/document/node/props/prop.ts b/packages/designer/src/document/node/props/prop.ts index bc846416d..05de1009b 100644 --- a/packages/designer/src/document/node/props/prop.ts +++ b/packages/designer/src/document/node/props/prop.ts @@ -159,7 +159,7 @@ export class Prop implements IPropParent { const v = prop.export(stage); if (v != null) { maps = maps || {}; - maps[prop.key || key] = prop.export(stage); + maps[prop.key || key] = v; } } }); @@ -170,9 +170,13 @@ export class Prop implements IPropParent { if (!this._items) { return this._value; } - return this.items!.map((prop) => { + const values = this.items!.map((prop) => { return prop.export(stage); }); + if (values.every(val => val === undefined)) { + return undefined; + } + return values; } } diff --git a/packages/designer/tests/document/node/props/prop.test.ts b/packages/designer/tests/document/node/props/prop.test.ts index 002a96871..ec447a902 100644 --- a/packages/designer/tests/document/node/props/prop.test.ts +++ b/packages/designer/tests/document/node/props/prop.test.ts @@ -430,6 +430,11 @@ describe('Prop 类测试', () => { // illegal // expect(prop.set(5, 1)).toBeNull(); }); + + it('should return undefined when all items are undefined', () => { + prop = new Prop(mockedPropsInst, [undefined, undefined], '___loopArgs___'); + expect(prop.getValue()).toBeUndefined(); + }); }); });