From a10b2423eaae0d4c1076aaf57383f836526ec8c5 Mon Sep 17 00:00:00 2001 From: liujuping Date: Wed, 23 Feb 2022 16:22:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=94=BB=E5=B8=83?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9=E9=85=8D=E7=BD=AE=E5=9C=A8=E7=94=BB?= =?UTF-8?q?=E5=B8=83=E4=B8=AD=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/renderer-core/src/hoc/leaf.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/renderer-core/src/hoc/leaf.tsx b/packages/renderer-core/src/hoc/leaf.tsx index abc92acd3..9a3c62f5c 100644 --- a/packages/renderer-core/src/hoc/leaf.tsx +++ b/packages/renderer-core/src/hoc/leaf.tsx @@ -5,7 +5,6 @@ import { EngineOptions } from '@ali/lowcode-editor-core'; import adapter from '../adapter'; import * as types from '../types/index'; - export interface IComponentHocInfo { schema: any; baseRenderer: types.IBaseRendererInstance; @@ -17,7 +16,7 @@ type DesignMode = Pick['designMode']; export type IComponentHoc = { designMode: DesignMode | DesignMode[]; - hoc: IComponentConstruct, + hoc: IComponentConstruct; }; export type IComponentConstruct = (Comp: types.IBaseRenderer, info: IComponentHocInfo) => types.Constructor; @@ -44,7 +43,7 @@ enum RerenderType { // 缓存 Leaf 层组件,防止重新渲染问题 class LeafCache { - constructor(public documentId: string) { + constructor(public documentId: string, public device: 'mobile' | 'web') { } /** 组件缓存 */ component = new Map(); @@ -126,6 +125,7 @@ export function leafWrapper(Comp: types.IBaseRenderer, { const engine = baseRenderer.context.engine; const host: BuiltinSimulatorHost = baseRenderer.props.__host; const curDocumentId = baseRenderer.props?.documentId; + const curDevice = baseRenderer.props?.device; const getNode = baseRenderer.props?.getNode; const container: BuiltinSimulatorHost = baseRenderer.props.__container; const setSchemaChangedSymbol = baseRenderer.props?.setSchemaChangedSymbol; @@ -134,11 +134,11 @@ export function leafWrapper(Comp: types.IBaseRenderer, { const componentCacheId = schema.id; - if (!cache || (curDocumentId && curDocumentId !== cache.documentId)) { + if (!cache || (curDocumentId && curDocumentId !== cache.documentId) || (curDevice && curDevice !== cache.device)) { cache?.event.forEach(event => { event.dispose?.forEach((disposeFn: any) => disposeFn && disposeFn()); }); - cache = new LeafCache(curDocumentId); + cache = new LeafCache(curDocumentId, curDevice); } if (!isReactComponent(Comp)) { @@ -262,9 +262,9 @@ export function leafWrapper(Comp: types.IBaseRenderer, { } renderUnitInfo: { - minimalUnitId?: string, + minimalUnitId?: string; minimalUnitName?: string; - singleRender?: boolean, + singleRender?: boolean; }; shouldRenderSingleNode(): boolean {