baidu / amis

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

editor中List2组件buildDataSchemas方法不关注root scope数据 #11034

Open franckchen opened 1 month ago

franckchen commented 1 month ago

描述问题:

editor中List2组件buildDataSchemas方法不关注root scope数据

复现步骤:

Editor组件中通过props传入schemas, 作为顶层数据域数据的结构描述.其中包含一个对象组成的数组(Array<Record<string, (number | string | boolean)>>), 图中代码是基于amis editor本地开发入口代码(amis-editor/examle/Editor.tsx) 中的schema添加新数据。如下图

image

在列表组件(Plugin是List2, Renderer是cards)右侧配置中设置数据绑定. 绑定至此前在Editor schema props中设置的array类型数数据.

image

列表组件中选择一个type: tpl的文字, 打开Formula编辑器, 意图绑定数组中对象的一个文字成员.

image

此时发现编辑器中无法选择并关联数据, 无候选, 无法识别书对象的schema

image

经过代码分析发现List2组件的buildDataSchemas, 不主动识别root Scope中的数据, 导致上述问题。

https://github.com/baidu/amis/blob/9597f7976459753e8b32e3803fb49c8965a4d563/packages/amis-editor/src/plugin/List2.tsx#L412-L439

尝试override List2组件, 修改buildDataSchemas方法实现如下后, 可正常工作。

image

不知道是否是bug。目前通过Editor 注入的root schema, 绑定至List2组件时, 会出问题

github-actions[bot] commented 1 month ago

👍 Thanks for this! 🏷 I have applied any labels matching special text in your issue.

Please review the labels and make any necessary changes.