自检
- 这仅用于提交 bug 报告,如果您想提问,请访问 Discussions 。
- 我已在 search for existing issues 中搜索了现有问题,包括已关闭的问题。
- 我确认我使用英文提交此报告(我已阅读并同意 Language Policy )。
- 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
- 请不要修改此模板 :) 并填写所有必需的字段。
Dify 版本
0.6.11
云或自托管
云、自托管(Docker)、自托管(源代码)
重现步骤
- 创建一个具有输出变量的上游节点。
- 将这些输出变量链接到下游节点。
- 删除上游节点。
✔️ 预期行为
在删除上游节点后,其输出变量在下游节点中的任何引用应自动删除。
❌ 实际行为
已删除的上游节点的输出变量在下游节点中的引用仍然存在,可能导致错误或未定义的行为。
2条答案
按热度按时间eqoofvh91#
步骤1
步骤2
步骤3
eqfvzcg82#
要解决在下游节点中仍然存在已删除上游节点输出变量引用的问题,您可以使用
removeUsedVarInNodes
函数。该函数旨在从下游节点中删除对变量的引用。以下是相关的代码片段:
要使用此功能,请调用
removeUsedVarInNodes
并传入适当的varSelector
(用于标识要删除的变量)。这将更新节点并删除已删除变量的引用。此外,
web/app/components/workflow/nodes/variable-assigner/use-config.ts
文件中的useConfig
钩子提供了一种全面的方法来管理变量赋值及其引用。它包括处理变量删除的函数,如handleGroupRemoved
和onRemoveVarConfirm
,以确保正确更新或删除引用。例如,
onRemoveVarConfirm
函数确保所有已删除变量的引用都被清理:通过使用这些函数,您可以确保已删除上游节点输出变量的所有引用都从下游节点中删除,防止潜在错误或未定义行为 1(https://github.com/langgenius/dify/blob/main/web/app/components/workflow/hooks/use-workflow.ts)2(https://github.com/langgenius/dify/blob/main/web/app/components/workflow/nodes/variable-assigner/use-config.ts)。