qinyan 1 рік тому
батько
коміт
dbbeebec41

+ 2 - 2
src/modules/editor/components/CompUI/basicUI/Container/component.tsx

@@ -78,8 +78,8 @@ export const Component = defineComponent({
               const Comp =
                 controls.compUICtrl.state.components.get(compItem?.compKey)
                   ?.Component || CompUI.Container.Component;
-
-              return <Comp key={compItem.id + index} compId={compItem.id} />;
+              if (!compItem) return;
+              return <Comp key={compItem?.id + index} compId={compItem?.id} />;
             })}
           </View>
         </div>

+ 1 - 1
src/modules/editor/controllers/PageCtrl/index.ts

@@ -32,7 +32,7 @@ export class PageCtrl extends ModuleControl<EditorModule> {
     initEvent() {
 
         const updatePid = (pid:string)=>{
-           const comps = this.compMap[pid].children.default || [];
+           const comps = this.compMap[pid]?.children.default || [];
            comps.forEach(c=>{
                this.setCompPid(c, pid)
                updatePid(c);

+ 1 - 0
src/modules/editor/controllers/ScreenCtrl/index.ts

@@ -230,6 +230,7 @@ export class ScreenCtrl extends ModuleControl<EditorModule> {
          childrs.forEach(item=>{
             newChilds.push(item.id);
             const screenComp = this.helper.findComp(item.id) as DesignComp;
+            if(!screenComp) return
             screenComp.layout.size[0] = item.size[0];
             screenComp.layout.size[1] = item.size[1];
             screenComp.layout.transformMatrix = item.matrix;

+ 3 - 0
src/modules/editor/controllers/SelectCtrl/compObj.ts

@@ -14,6 +14,7 @@ function pxToDesignSize(value: number) {
     return value * 2.0;
 }
 export class CompObject extends DisplayObject {
+    // @ts-ignore
     comp:DesignComp;
     rect = new Rectangle();
 
@@ -31,6 +32,7 @@ export class CompObject extends DisplayObject {
 
     constructor(c:DesignComp, usHistory = false) {
         super();
+        if(!c) return
         this.comp = c;
         
         const wmtx = Matrix.createFromMatrixStr(c.layout.transformMatrix || "matrix(1,0,0,1,0,0)")
@@ -54,6 +56,7 @@ export class CompObject extends DisplayObject {
             
             if (!inited) {
                 const s:any = [pxToDesignSize(tsf.w), pxToDesignSize(tsf.h)];
+                if(!this.comp.layout.setSize) return
                 this.comp.layout.setSize(s);
                 this.comp.layout.setTransformMatrix(this.worldTransform.getMatrixStr())
             }

+ 1 - 1
src/modules/editor/objects/DesignTemp/factory.ts

@@ -100,7 +100,7 @@ export function createObj( data:any, init = true) :DesignComp {
 
 
         if (compKey == "CardList") { 
-            obj.children.list = data.children.list;
+            obj.children.list = data.children?.list;
         }
         return obj;
     }