diff --git a/packages/designer/src/designer/document/node/props/prop.ts b/packages/designer/src/designer/document/node/props/prop.ts index 2162cd3ea..a8b941339 100644 --- a/packages/designer/src/designer/document/node/props/prop.ts +++ b/packages/designer/src/designer/document/node/props/prop.ts @@ -74,7 +74,7 @@ export default class Prop implements IPropParent { if (type === 'list') { if (!this._items) { - return this._items; + return this._value; } return this.items!.map(prop => { const v = prop.export(serialize); @@ -172,8 +172,12 @@ export default class Prop implements IPropParent { this.dispose(); } - getValue(serialize = true) { - // todo: + @computed getValue(): CompositeValue { + const v = this.export(true); + if (v === UNSET) { + return null; + } + return v; } private dispose() { diff --git a/packages/plugin-settings/src/builtin-setters/events-setter/index.tsx b/packages/plugin-settings/src/builtin-setters/events-setter/index.tsx index fa1fa4ec1..2db3851e6 100644 --- a/packages/plugin-settings/src/builtin-setters/events-setter/index.tsx +++ b/packages/plugin-settings/src/builtin-setters/events-setter/index.tsx @@ -31,12 +31,14 @@ export default class EventsSetter extends Component<{ selectType: null, nativeEventList: [], lifeCycleEventList: [], - eventDataList: [], + eventDataList: this.props.value || [], isShowEventDialog: false, bindEventName: '', relatedEventName: '', }; + // TODO: getDerivedStateFromProps recieve eventDataList from prop.value + componentWillMount() { this.initEventBtns(); this.initEventList(); @@ -239,10 +241,7 @@ export default class EventsSetter extends Component<{ } }); - this.props.onChange(eventDataList); - // field.setValue(eventDataList); - this.closeDialog(); }; diff --git a/packages/plugin-settings/src/main.ts b/packages/plugin-settings/src/main.ts index 63e7bc58e..84a4d67b7 100644 --- a/packages/plugin-settings/src/main.ts +++ b/packages/plugin-settings/src/main.ts @@ -455,7 +455,7 @@ export class SettingsMain implements SettingTarget { if (this.nodes.length < 1) { return null; } - return this.nodes[0].getProp(propName, false)?.value; + return this.nodes[0].getProp(propName, true)?.getValue(); } /** @@ -471,7 +471,7 @@ export class SettingsMain implements SettingTarget { if (this.nodes.length < 1) { return null; } - return this.nodes[0].getExtraProp(propName, false)?.value; + return this.nodes[0].getExtraProp(propName, false)?.getValue(); } setExtraPropValue(propName: string, value: any) { diff --git a/packages/plugin-settings/src/register-transducer.ts b/packages/plugin-settings/src/register-transducer.ts index 86ed426c6..01732b253 100644 --- a/packages/plugin-settings/src/register-transducer.ts +++ b/packages/plugin-settings/src/register-transducer.ts @@ -417,17 +417,14 @@ registerMetadataTransducer(metadata => { }, }, - getValue(field: SettingField, val?: any[]) { + getValue(field: SettingField, val?:any[]) { return val; - - let data = field.parent.getPropValue('eventDataList'); - return data; }, + setValue(field: SettingField, eventDataList: any[]) { return; - - console.info(eventDataList); - field.parent.setPropValue('eventDataList', eventDataList); + // console.info(eventDataList); + // field.parent.setPropValue('eventDataList', eventDataList); }, }, ],