From 0cccb29da9ef712057cfaee29d83080ad70ffefe Mon Sep 17 00:00:00 2001 From: "liujuping.liujupin" Date: Mon, 27 Sep 2021 15:57:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=8E=E4=BB=A3=E7=A0=81=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=B8=8B=E7=BC=BA=E5=A4=B1=20getNode=20=E6=96=B9?= =?UTF-8?q?=E6=B3=95=20&=20=E4=BD=8E=E4=BB=A3=E7=A0=81=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=A4=9A=E5=B1=82=E6=B8=B2=E6=9F=93=E4=B8=8B=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../react-simulator-renderer/src/renderer.ts | 3 +-- packages/renderer-core/src/hoc/leaf.tsx | 22 +++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/packages/react-simulator-renderer/src/renderer.ts b/packages/react-simulator-renderer/src/renderer.ts index 10605fc9b..79a466e97 100644 --- a/packages/react-simulator-renderer/src/renderer.ts +++ b/packages/react-simulator-renderer/src/renderer.ts @@ -444,7 +444,6 @@ export class SimulatorRendererContainer implements BuiltinSimulatorRenderer { } const renderer = this; - const { componentsMap: components } = renderer; class LowCodeComp extends React.Component { render() { @@ -458,7 +457,7 @@ export class SimulatorRendererContainer implements BuiltinSimulatorRenderer { return createElement(LowCodeRenderer, { ...extraProps, // 防止覆盖下面内置属性 schema: newSchema, - components, + components: renderer.components, designMode: renderer.designMode, device: renderer.device, appHelper: renderer.context, diff --git a/packages/renderer-core/src/hoc/leaf.tsx b/packages/renderer-core/src/hoc/leaf.tsx index 1cc0d07f5..06636a16b 100644 --- a/packages/renderer-core/src/hoc/leaf.tsx +++ b/packages/renderer-core/src/hoc/leaf.tsx @@ -1,5 +1,6 @@ import { BuiltinSimulatorHost, Node, PropChangeOptions } from '@ali/lowcode-designer'; import { GlobalEvent, TransformStage } from '@ali/lowcode-types'; +import { isReactComponent } from '@ali/lowcode-utils'; import { EngineOptions } from '@ali/lowcode-editor-core'; import adapter from '../adapter'; import * as types from '../types/index'; @@ -67,14 +68,21 @@ export function leafWrapper(Comp: types.IBaseRenderer, { const editor = host?.designer?.editor; const { Component } = adapter.getRuntime(); - /** 部分没有渲染的 node 节点进行兜底处理 or 渲染方式没有渲染 LeafWrapper */ - const leaf = getNode(schema.id); + if (!isReactComponent(Comp)) { + console.error(`${schema.componentName} component may be has errors: `, Comp); + } - const wrapDisposeFunctions: Function[] = [ - leaf?.onPropsChange?.(() => container.rerender()), - leaf?.onChildrenChange?.(() => container.rerender()), - leaf?.onVisibleChange?.(() => container.rerender()), - ]; + /** 部分没有渲染的 node 节点进行兜底处理 or 渲染方式没有渲染 LeafWrapper */ + let wrapDisposeFunctions: Function[] = []; + if (getNode) { + const leaf = getNode(schema.id); + + wrapDisposeFunctions = [ + leaf?.onPropsChange?.(() => container.rerender()), + leaf?.onChildrenChange?.(() => container.rerender()), + leaf?.onVisibleChange?.(() => container.rerender()), + ]; + } class LeafWrapper extends Component { recordInfo: {