flow-builder icon indicating copy to clipboard operation
flow-builder copied to clipboard

分支节点无法自定义组件吗,conditionNodeType: "condition" 存在 displayComponent无效

Open Komorebiqch opened this issue 4 years ago • 8 comments

Komorebiqch avatar Feb 22 '22 14:02 Komorebiqch

分支节点的 conditionNodeType 属性要对应一个节点的 type 属性,例如这样: [ { type: 'branch', name: '分支节点', conditionNodeType: 'myCondition', }, { type: 'myCondition', name: '条件节点', } ]

lixiao1022 avatar Apr 26 '22 10:04 lixiao1022

displayComponent 分支节点应该没办法自定义,分支节点下面渲染了条件节点,以及其他 children。 其实我想要 添加条件节点的按钮自定义。

psybor avatar May 13 '22 02:05 psybor

displayComponent 分支节点应该没办法自定义,分支节点下面渲染了条件节点,以及其他 children。 其实我想要 添加条件节点的按钮自定义。

我就是这个意思,我也想自定义添加条件节点的按钮自定义

Komorebiqch avatar May 13 '22 02:05 Komorebiqch

明白了,之前是设计了 addIcon 用来自定义节点图标的,这个分支节点增加条件的按钮忘记了。可以尝试升级到 0.1.25 或者 1.0.2 版本,我都加上了

lixiao1022 avatar May 16 '22 02:05 lixiao1022

明白了,之前是设计了 addIcon 用来自定义节点图标的,这个分支节点增加条件的按钮忘记了。可以尝试升级到 0.1.25 或者 1.0.2 版本,我都加上了

{ type: "branch", name: "分支", removeConfirmTitle: "确认要删除此节点?", conditionNodeType: "condition", addableComponent: CustomAddableComponent, initialNodeData: { id: createUUID(), name: "分支", type: "branch", children: [ { id: createUUID(), properties: {}, default: false, name: "分支节点", content: "请设置条件", type: "condition" }, { id: createUUID(), name: "分支节点", properties: {}, default: true, content: "默认分支节点", type: "condition" } ] } } 大佬,我这样初始化分支节点数据之后,分支节点下面继续添加分支节点,所有数据都是一样的,我id用了uuid还有时间戳,debugger看了新增出来的id都是一样的

Komorebiqch avatar May 16 '22 02:05 Komorebiqch

@Komorebiqch 你定义节点的时候,就已经把 initialNodeData 的 id 求出来了,(你的 createUUID 函数已经调用了)。当然每次都是一样的。话说,现在好像不支持传一个函数过去惰性求值。

psybor avatar May 16 '22 02:05 psybor

明白了,之前是设计了 addIcon 用来自定义节点图标的,这个分支节点增加条件的按钮忘记了。可以尝试升级到 0.1.25 或者 1.0.2 版本,我都加上了

{ type: "branch", name: "分支", removeConfirmTitle: "确认要删除此节点?", conditionNodeType: "condition", addableComponent: CustomAddableComponent, initialNodeData: { id: createUUID(), name: "分支", type: "branch", children: [ { id: createUUID(), properties: {}, default: false, name: "分支节点", content: "请设置条件", type: "condition" }, { id: createUUID(), name: "分支节点", properties: {}, default: true, content: "默认分支节点", type: "condition" } ] } } 大佬,我这样初始化分支节点数据之后,分支节点下面继续添加分支节点,所有数据都是一样的,我id用了uuid还有时间戳,debugger看了新增出来的id都是一样的

每次增加节点时,会把 registerNodes 中的 initialNodeData 结构出来赋值给当前节点(initialNodeData 可能不太适用于你现在这个场景),代码实现比较简单,可以看这里 https://github.com/bytedance/flow-builder/blob/main/src/utils/index.ts#L80。

lixiao1022 avatar May 16 '22 04:05 lixiao1022

@Komorebiqch 你定义节点的时候,就已经把 initialNodeData 的 id 求出来了,(你的 createUUID 函数已经调用了)。当然每次都是一样的。话说,现在好像不支持传一个函数过去惰性求值。

是的,我们暂时还没有遇到这么复杂的场景,所以就没有这样设计 😁

lixiao1022 avatar May 16 '22 04:05 lixiao1022