From 0bbafa153d220f017ca634f13a9cf4379da30bd9 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Thu, 19 Mar 2026 11:34:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(core,data-source):=20=E5=A4=9A=E4=B8=AA?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=89=87=E5=AE=B9=E5=99=A8=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E5=90=8C=E4=B8=80=E4=B8=AA=E9=A1=B5=E9=9D=A2=E7=89=87=E6=97=B6?= =?UTF-8?q?,=E5=85=B6=E4=BB=96=E6=9C=89=E6=9C=AA=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E7=9A=84=E9=A1=B5=E9=9D=A2=E7=89=87=E5=AE=B9=E5=99=A8=E6=97=B6?= =?UTF-8?q?=E4=BC=9A=E5=AF=BC=E8=87=B4=E6=95=B0=E6=8D=AE=E6=BA=90=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E5=90=8E=E6=95=B0=E6=8D=AE=E6=97=A0=E6=B3=95=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/Page.ts | 4 +++- packages/data-source/src/createDataSourceManager.ts | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/core/src/Page.ts b/packages/core/src/Page.ts index 2ea30e5f..8aaa641a 100644 --- a/packages/core/src/Page.ts +++ b/packages/core/src/Page.ts @@ -16,6 +16,8 @@ * limitations under the License. */ +import { cloneDeep } from 'lodash-es'; + import type { Id, MComponent, MContainer, MPage, MPageFragment } from '@tmagic/schema'; import App from './App'; @@ -70,7 +72,7 @@ class Page extends Node { this.app.pageFragments.set( config.id, new Page({ - config: pageFragment, + config: cloneDeep(pageFragment), app: this.app, }), ); diff --git a/packages/data-source/src/createDataSourceManager.ts b/packages/data-source/src/createDataSourceManager.ts index 43e63d9e..2cc06622 100644 --- a/packages/data-source/src/createDataSourceManager.ts +++ b/packages/data-source/src/createDataSourceManager.ts @@ -15,7 +15,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { union } from 'lodash-es'; +import { cloneDeep, union } from 'lodash-es'; import type { default as TMagicApp } from '@tmagic/core'; import { getDepNodeIds, getNodes, isPage, isPageFragment, replaceChildNode } from '@tmagic/core'; @@ -82,11 +82,11 @@ export const createDataSourceManager = (app: TMagicApp, useMock?: boolean, initi for (const [, pageFragment] of app.pageFragments) { if (pageFragment.data.id === newNode.id) { - pageFragment.setData(newNode); + pageFragment.setData(cloneDeep(newNode)); } else if (pageFragment.data.id === page.id) { - pageFragment.getNode(newNode.id, { strict: true })?.setData(newNode); + pageFragment.getNode(newNode.id, { strict: true })?.setData(cloneDeep(newNode)); if (!pageFragment.instance) { - replaceChildNode(newNode, [pageFragment.data]); + replaceChildNode(cloneDeep(newNode), [pageFragment.data]); } } }