跳到主要内容

# 物料出现 Component Not Found 相关报错

## 预览态，antd 资产包按顺序加载，但是没有按顺序执行​

资产包按顺序加载，但是没有按顺序执行，导致部分 js 执行的时候，依赖的资源没有准备好，报错了。 传给 @alilc/lowcode-react-renderer 的 components 值为空。

解决方案 LowCodeEngine 升级到 1.0.8

> 相关 PR：https://github.com/alibaba/lowcode-engine/pull/383

## 编辑态，snippets 和注入组件不对应​

1.在控制台中输入

    AliLowCodeEngine.material.componentsMap

查看物料配置是否正常。

如果正常继续。 LowCodeEngine 需要升级到 1.0.10

    AliLowCodeEngine.project.simulator.renderer.components

看看对应的物料是否存在，如果不存在，排查物料问题。

如果不正常，查看资产包配置，其中资产包中的 `components` 和 `material.componentsMap` 生成有关系。

例如，物料配置信息在 @alilc/lowcode-materials 包里面，即需要在 components 中加上下面的代码

    "components": [{
      "exportName": "AlilcLowcodeMaterialsMeta",
      "npm": {
        "package": "@alilc/lowcode-materials"
      },
      "url": "https://alifd.alicdn.com/npm/@alilc/lowcode-materials@1.0.7/build/lowcode/meta.js",
      "urls": {
        "default": "https://alifd.alicdn.com/npm/@alilc/lowcode-materials@1.0.7/build/lowcode/meta.js",
        "design": "https://alifd.alicdn.com/npm/@alilc/lowcode-materials@1.0.7/build/lowcode/meta.design.js"
      }
    }]

`material.componentsMap` 不存在相关的组件信息，原因有两个：

- 没有添加对应的物料到 components 字段中
- components 配置不正确，需要查看 url 是否正常加载，查看 exportName 是否配置正确，即 `window.${exportName}` 是否存在。

2.选中组件，在控制台中输入

    AliLowCodeEngine.project.currentDocument.selection.getNodes()[0].exportSchema('render')

查看 componentName 是否匹配。

3.调用 rerender 方法

    AliLowCodeEngine.project.simulator.rerender()

看一下问题是否恢复。

## 排查物料问题​

找到对应组件的资产包，比如下图的资产包。

    {
      "package": "@yingzhi8/lowcode-public-package",
      "version": "0.1.2",
      "library": "BizComps",
      "urls": [
        "https://unpkg.com/@yingzhi8/lowcode-public-package@0.1.2/build/lowcode/render/default/view.js",
        "https://unpkg.com/@yingzhi8/lowcode-public-package@0.1.2/build/lowcode/render/default/view.css"
      ],
      "editUrls": [
        "https://unpkg.com/@yingzhi8/lowcode-public-package@0.1.2/build/lowcode/view.js",
        "https://unpkg.com/@yingzhi8/lowcode-public-package@0.1.2/build/lowcode/view.css"
      ],
      "advancedUrls": {
        "default": [
          "https://unpkg.com/@yingzhi8/lowcode-public-package@0.1.2/build/lowcode/render/default/view.js",
          "https://unpkg.com/@yingzhi8/lowcode-public-package@0.1.2/build/lowcode/render/default/view.css"
        ]
      },
      "advancedEditUrls": {}
    }

### 查看 urls 是否加载​

通过查看控制台，看加载的 urls

### library 配置是否正确​

library 是可以在画布上访问到全局变量，确定 library 是否正确，在控制台输入：

    AliLowCodeEngine.project.simulator.contentWindow.${library}