Open franckchen opened 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添加新数据。如下图
Array<Record<string, (number | string | boolean)>>
在列表组件(Plugin是List2, Renderer是cards)右侧配置中设置数据绑定. 绑定至此前在Editor schema props中设置的array类型数数据.
列表组件中选择一个type: tpl的文字, 打开Formula编辑器, 意图绑定数组中对象的一个文字成员.
此时发现编辑器中无法选择并关联数据, 无候选, 无法识别书对象的schema
经过代码分析发现List2组件的buildDataSchemas, 不主动识别root Scope中的数据, 导致上述问题。
buildDataSchemas
https://github.com/baidu/amis/blob/9597f7976459753e8b32e3803fb49c8965a4d563/packages/amis-editor/src/plugin/List2.tsx#L412-L439
尝试override List2组件, 修改buildDataSchemas方法实现如下后, 可正常工作。
不知道是否是bug。目前通过Editor 注入的root schema, 绑定至List2组件时, 会出问题
👍 Thanks for this! 🏷 I have applied any labels matching special text in your issue.
Please review the labels and make any necessary changes.
描述问题:
editor中List2组件buildDataSchemas方法不关注root scope数据
复现步骤:
Editor组件中通过props传入schemas, 作为顶层数据域数据的结构描述.其中包含一个对象组成的数组(
Array<Record<string, (number | string | boolean)>>
), 图中代码是基于amis editor本地开发入口代码(amis-editor/examle/Editor.tsx) 中的schema添加新数据。如下图在列表组件(Plugin是List2, Renderer是cards)右侧配置中设置数据绑定. 绑定至此前在Editor schema props中设置的array类型数数据.
列表组件中选择一个type: tpl的文字, 打开Formula编辑器, 意图绑定数组中对象的一个文字成员.
此时发现编辑器中无法选择并关联数据, 无候选, 无法识别书对象的schema
经过代码分析发现List2组件的
buildDataSchemas
, 不主动识别root Scope中的数据, 导致上述问题。https://github.com/baidu/amis/blob/9597f7976459753e8b32e3803fb49c8965a4d563/packages/amis-editor/src/plugin/List2.tsx#L412-L439
尝试override List2组件, 修改
buildDataSchemas
方法实现如下后, 可正常工作。不知道是否是bug。目前通过Editor 注入的root schema, 绑定至List2组件时, 会出问题