leaferjs / leafer-ui

一款好用的 Canvas 渲染引擎,革新的体验。高效绘图 、UI 交互(小游戏、互动应用、组态)、图形编辑,前端开发必备~
https://www.leaferjs.com
MIT License
2.38k stars 82 forks source link

toJSON 方法如何导出自定义属性? #79

Closed benny-eu closed 9 months ago

benny-eu commented 9 months ago

根据文档对addAttr的描述

新增元素属性(静态方法),新增后的属性,可以收集变化和 JSON 导出。

我尝试运行以下代码,返回的结果没有包含新增的自定义属性。

Rect.addAttr(
  'payload',
  {
    name: 'Benny',
  },
  dataType
);

const rect = new Rect({
  x: 100,
  y: 100,
  width: 200,
  height: 200,
  fill: '#32cd79',
  draggable: true,
  editable: true,
});

console.log(rect.toJSON());
leaferjs commented 9 months ago

需要在实例中设置具体的值才会导出,默认值是不会导出的(节省资源)

leaferjs commented 9 months ago

addAttr是定义一个元素通用属性(全局的,可设置默认值),具体的值需要在实例中设置: new Rect({'payload': {})