From 5b64850bd512d269cca99eb9afeff5b31b966efd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8A=9B=E7=9A=93?= Date: Thu, 22 Apr 2021 19:13:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor(perf):=20=E8=A7=A3=E5=86=B3=E5=86=85?= =?UTF-8?q?=E5=AD=98=E6=B3=84=E6=BC=8F=E9=97=AE=E9=A2=98,=20=E5=9B=9E?= =?UTF-8?q?=E6=94=B6=20setting-top-entry,=20=E6=96=AD=E5=BC=80=20setting-f?= =?UTF-8?q?ield=20=E7=88=B6=E5=AD=90=E4=B9=8B=E9=97=B4=E7=9A=84=E4=BA=92?= =?UTF-8?q?=E7=9B=B8=E5=BC=95=E7=94=A8=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/designer/src/designer/setting/setting-field.ts | 6 +++++- packages/editor-skeleton/src/components/settings/main.ts | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/designer/src/designer/setting/setting-field.ts b/packages/designer/src/designer/setting/setting-field.ts index 5b73cb93a..2f922a5a0 100644 --- a/packages/designer/src/designer/setting/setting-field.ts +++ b/packages/designer/src/designer/setting/setting-field.ts @@ -58,10 +58,13 @@ export class SettingField extends SettingPropEntry implements SettingEntry { this._expanded = value; } - constructor(readonly parent: SettingEntry, config: FieldConfig, settingFieldCollector?: (name: string | number, field: SettingField) => void) { + parent: SettingEntry; + + constructor(parent: SettingEntry, config: FieldConfig, settingFieldCollector?: (name: string | number, field: SettingField) => void) { super(parent, config.name, config.type); const { title, items, setter, extraProps, ...rest } = config; + this.parent = parent; this._config = config; this._title = title; this._setter = setter; @@ -115,6 +118,7 @@ export class SettingField extends SettingPropEntry implements SettingEntry { purge() { this.disposeItems(); + this.parent = null as any; } // ======= compatibles for vision ====== diff --git a/packages/editor-skeleton/src/components/settings/main.ts b/packages/editor-skeleton/src/components/settings/main.ts index 40e62059e..5c6e3ffa3 100644 --- a/packages/editor-skeleton/src/components/settings/main.ts +++ b/packages/editor-skeleton/src/components/settings/main.ts @@ -69,6 +69,7 @@ export class SettingsMain { this.designer = nodes[0].document.designer; } + this._settings?.purge(); this._settings = this.designer.createSettingEntry(nodes); }