Open twinkle77 opened 2 years ago
具体是哪个 prop 发生了变化呢?
一般可以引发值变化的操作:
具体是哪个 prop 发生了变化呢?
一般可以引发值变化的操作:
- 属性初始化,比如选中节点,设置面板在初始化时会调用属性的 defaultValue ,也比如节点销毁/重新构造(表单容器类场景)
- 属性被修改,显式的调用了 setPropValue 之类的设置型 API
Tabs 组件的 Items 属性发生了变化,触发了 leaf.onPropChange 事件 ,Items 属性比较特殊,有一个 children 子属为JSSlot
大佬
选中节点
,比如在画布里点击任何节点,我测试过程中,发现只有 Tabs 组件会触发 leaf.onPropChange 事件,尽管 Tabs 组件的 props 没有任何变化如上图,此时 鼠标 高亮在 button 组件 或 Alert 组件,都不会触发 onPropChange,但高亮在 Tabs,onPropChange 事件会触发
其回调参数看到 Tabs 组件的 item
prop 发生变化
old value 的值:
new value 的值:
@LeoYuan
Describe the bug (required) / 详细描述 bug(必填)
Antd Tabs 组件的 meta 文件 没有比较特殊的描述,但每次在画布中点击 Tabs 组件,leaf.onPropChange 事件 都会触发,组件的 props 会重新解析,this.setState 的调用导致 Tabs 组件重渲染
关联 issue: https://github.com/alibaba/lowcode-engine/issues/1121 https://github.com/alibaba/lowcode-engine/issues/1118
初步定位是重新解析的 props 跟首次解析的 props 不一致,导致了 1121、1118 点击组件 slot 没了的问题
To Reproduce (required) / 如何复现 bug?(必填,非常重要)
发现每次点击 Tabs 组件都会触发 leaf.onPropChang 事件
xswitch 配置如下