Skip to content

Commit d4de1cc

Browse files
authored
Merge pull request alibaba#141 from alibaba/fix/loopArgs
Fix/loop args
2 parents c54f369 + d2c3f0b commit d4de1cc

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

packages/designer/src/document/node/props/prop.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ export class Prop implements IPropParent {
159159
const v = prop.export(stage);
160160
if (v != null) {
161161
maps = maps || {};
162-
maps[prop.key || key] = prop.export(stage);
162+
maps[prop.key || key] = v;
163163
}
164164
}
165165
});
@@ -170,9 +170,13 @@ export class Prop implements IPropParent {
170170
if (!this._items) {
171171
return this._value;
172172
}
173-
return this.items!.map((prop) => {
173+
const values = this.items!.map((prop) => {
174174
return prop.export(stage);
175175
});
176+
if (values.every(val => val === undefined)) {
177+
return undefined;
178+
}
179+
return values;
176180
}
177181
}
178182

packages/designer/tests/document/node/node.test.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import rootHeaderMetadata from '../../fixtures/component-metadata/root-header';
2626
import rootContentMetadata from '../../fixtures/component-metadata/root-content';
2727
import rootFooterMetadata from '../../fixtures/component-metadata/root-footer';
2828

29-
describe.skip('Node 方法测试', () => {
29+
describe('Node 方法测试', () => {
3030
let editor: Editor;
3131
let designer: Designer;
3232
let project: Project;
@@ -474,15 +474,16 @@ describe.skip('Node 方法测试', () => {
474474
it('didDropIn / didDropOut', () => {
475475
const form = doc.getNode('node_k1ow3cbo');
476476
designer.createComponentMeta(divMetadata);
477+
designer.createComponentMeta(formMetadata);
477478
const callbacks = form.componentMeta.getMetadata().configure.advanced?.callbacks;
478479
const fn1 = callbacks.onNodeAdd = jest.fn();
479480
const fn2 = callbacks.onNodeRemove = jest.fn();
480481
const textField = doc.getNode('node_k1ow3cc9');
481482
form.didDropIn(textField);
482-
expect(fn1).toHaveBeenCalledWith(textField, form);
483+
expect(fn1).toHaveBeenCalledWith(textField.internalToShellNode(), form.internalToShellNode());
483484

484485
form.didDropOut(textField);
485-
expect(fn2).toHaveBeenCalledWith(textField, form);
486+
expect(fn2).toHaveBeenCalledWith(textField.internalToShellNode(), form.internalToShellNode());
486487
});
487488

488489
it('hover', () => {

packages/designer/tests/document/node/props/prop.test.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,11 @@ describe('Prop 类测试', () => {
430430
// illegal
431431
// expect(prop.set(5, 1)).toBeNull();
432432
});
433+
434+
it('should return undefined when all items are undefined', () => {
435+
prop = new Prop(mockedPropsInst, [undefined, undefined], '___loopArgs___');
436+
expect(prop.getValue()).toBeUndefined();
437+
});
433438
});
434439
});
435440

0 commit comments

Comments
 (0)