Skip to content

[Bug Report]: DynamicGroup 展开/折叠后,被拖拽过的边坐标计算出现 NaN,导致连线消失 #2401

@1055373165

Description

@1055373165

复现步骤

  1. 创建一个包含 DynamicGroup 节点的流程图,Group 内部有子节点,且存在从 Group 内节点连出的边
  2. 随意拖拽其中一条连线(手动调整边的路径/锚点位置)
  3. 对该 DynamicGroup 节点执行展开/折叠操作若干次
  4. 再次点击选中这条被拖拽过的连线

期望行为

连线正常显示并可选中,坐标计算正确。

实际行为

连线消失不可见。控制台出现大量 NaN 相关的 SVG 属性错误:

Error: attribute y: Expected length, "NaN".
Error: attribute height: Expected length, "NaN".
Error: attribute points: Expected number, "….24999999999994,NaN 453.24999999…".
Error: attribute d: Expected number, "MNaN NaN\n LN…".

同时控制台有以下警告信息:

⚠ 未在节点上找到指定的终点锚点07c02d63-8d8d-4a8b-b442-2dce44581ffa_3,已使用默认锚点作为终点 BaseEdgeModel.js:284
⚠ 未在节点上找到指定的起点锚点9ba85ffb-709f-4659-bd3d-1cd6d30da289_1,已使用默认锚点作为起点 BaseEdgeModel.js:253

问题分析

从控制台警告来看,DynamicGroup 在折叠/展开过程中,子节点的锚点 ID 发生了变化或丢失。当边模型尝试根据之前记录的锚点 ID(如 07c02d63..._3、9ba85ffb..._1)查找锚点时找不到,回退使用默认锚点。但由于之前手动拖拽过边导致边上存在自定义的中间路径点(pointsList),这些路径点的坐标与回退后的新锚点位置不一致,最终导致坐标计算产生NaN。

截图

原始流程图(正常状态)

Image

展开折叠后点击连线(连线消失,红线为标注)

Image

控制台报错

Image

logicflow/core版本

@logicflow/core 2.1.11

logicflow/extension版本

@logicflow/extension 2.1.15

logicflow/engine版本

......

浏览器&环境

Chrome

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions