diff --git a/runtime/react/page/App.tsx b/runtime/react/page/App.tsx index fbc4decd..668d5798 100644 --- a/runtime/react/page/App.tsx +++ b/runtime/react/page/App.tsx @@ -23,7 +23,7 @@ import Core from '@tmagic/core'; import type { ChangeEvent } from '@tmagic/data-source'; import type { MNode } from '@tmagic/schema'; import { AppContent } from '@tmagic/ui-react'; -import { replaceChildNode } from '@tmagic/utils'; +import { isPage, replaceChildNode } from '@tmagic/utils'; function App() { const app = useContext(AppContent); @@ -33,11 +33,16 @@ function App() { const [config, setConfig] = useState(app.page.data); app.dataSourceManager?.on('update-data', (nodes: MNode[], sourceId: string, event: ChangeEvent) => { + let pageConfig = config; nodes.forEach((node) => { - replaceChildNode(node, [config]); + if (isPage(node)) { + pageConfig = node; + } else { + replaceChildNode(node, [pageConfig]); + } }); - setConfig(cloneDeep(config)); + setConfig(cloneDeep(pageConfig)); setTimeout(() => { app.emit('replaced-node', { diff --git a/runtime/vue2/page/App.vue b/runtime/vue2/page/App.vue index b04b36db..f604551c 100644 --- a/runtime/vue2/page/App.vue +++ b/runtime/vue2/page/App.vue @@ -3,23 +3,27 @@