baidu / amis

前端低代码框架,通过 JSON 配置就能生成各种页面。
https://baidu.github.io/amis/
Apache License 2.0
16.47k stars 2.4k forks source link

数据域里增加静态数据时,如果key以__开头,不生效 #10511

Open snowing-x opened 5 days ago

snowing-x commented 5 days ago

数据域里增加静态数据时,如果key以开头,不生效。 想了解一下这么做是出于什么考虑?另外哪些地方有的特殊处理?

allenve commented 5 days ago

应该没有特殊处理 方便发下有问题的 json 吗?

snowing-x commented 5 days ago

把下面的schema复制粘贴进编辑器,点预览以后,文本框没有值;再点编辑以后,schema里已经没有 "testB": "456" 这一项了。 直接配置【组件静态数据】,添加key以开头的数据,schema里会不展示这项数据。

{
  "type": "page",
  "body": [
    {
      "type": "input-text",
      "label": "文本",
      "name": "__testB",
      "id": "u:d8d5072dd884"
    }
  ],
  "id": "u:933dfc4abcf5",
  "data": {
    "testA": "123",
    "__testB": "456"
  }
}
snowing-x commented 5 days ago

把下面的schema复制粘贴进编辑器,点预览以后,文本框没有值;再点编辑以后,schema里已经没有 "testB": "456" 这一项了。 直接配置【组件静态数据】,添加key以开头的数据,schema里会不展示这项数据。

{
  "type": "page",
  "body": [
    {
      "type": "input-text",
      "label": "文本",
      "name": "__testB",
      "id": "u:d8d5072dd884"
    }
  ],
  "id": "u:933dfc4abcf5",
  "data": {
    "testA": "123",
    "__testB": "456"
  }
}

编辑器是6.0.0版本

allenve commented 5 days ago

编辑器里面确实有特殊处理 用来维护一些内部数据 amis本身是支持的

snowing-x commented 5 days ago

编辑器里对__的特殊处理包括哪些啊?是只针对数据域,还是其它地方也有?

allenve commented 5 days ago

仅在schema中不会展示 没有其他影响吧

snowing-x commented 5 days ago

编辑器,预览时候也不生效

allenve commented 3 days ago

参考这里吧 https://github.com/baidu/amis/blob/master/packages/amis-editor-core/src/store/editor.ts#L575 目前 __ 和 $$ 开头的会过滤掉