alibaba / lowcode-engine

An enterprise-class low-code technology stack with scale-out design / 一套面向扩展设计的企业级低代码技术体系
https://lowcode-engine.cn
MIT License
14.67k stars 2.55k forks source link

meta.ts 中的 extraProps.setValue 在初始化时不被调用 #558

Open hughlv opened 2 years ago

hughlv commented 2 years ago

Describe the bug (required) / 详细描述 bug(必填)

在 snippet 中设置的初始属性不会导致对应的 extraProps.setValue 调用。


To Reproduce (required) / 如何复现 bug?(必填,非常重要)

  1. 用脚手架生成一个新的组件工程;
  2. 参照 https://github.com/alibaba/lowcode-materials/blob/main/packages/fusion-lowcode-materials/lowcode/responsive-grid/meta.ts 实现一个返回 ResponsiveGrid 的布局组件, layout 和 extraProps.setValue 完全从该例子拷贝;
  3. 添加如下的 snippet:
    const snippets: Snippet[] = [
    {
      "title": "弹性布局(4:8)",
      "screenshot": "https://alifd.alicdn.com/fusion-cool/icons/icon-antd/1-1.png",
      "schema": {
        "componentName": "SomeBlock",
        "props": {
          layout: '4:8',
        },
      }
    }
    ];
  4. 运行 yarn lowcode:dev 进行调试。组件可以正常拖进来使用,也可以看到属性框中的 layout 值是 4:8 ,但是并没有执行 setValue (用 console.log 验证),必须再手动修改一下 layout 的值才会触发 setValue,(比如在后面加上一个空格再删掉);

Expected behavior (required) / 预期行为(必填,非常重要)

应能够在明确设置初始属性的时候调用对应的 extraProps.setValue

github-actions[bot] commented 2 years ago

Hello @hughlv. We totally like your proposal/feedback, PR wanted。

你好 @hughlv,我们完全同意你的提议/反馈,欢迎 PR。