fix(container): container render bounds delay

This commit is contained in:
liuyangxing 2025-03-17 20:45:21 +08:00
parent d8ce164255
commit 970fd09ec4
2 changed files with 21 additions and 21 deletions

View File

@ -21,35 +21,34 @@ export const ContainerNodeContainer: FC<IContainerNodeContainer> = ({ children }
const [height, setHeight] = useState(size.height);
const updatePorts = () => {
requestAnimationFrame(() => {
const portsData = node.getData<WorkflowNodePortsData>(WorkflowNodePortsData);
portsData.updateDynamicPorts();
});
const portsData = node.getData<WorkflowNodePortsData>(WorkflowNodePortsData);
portsData.updateDynamicPorts();
};
const updateSize = () => {
// 无子节点时
if (node.blocks.length === 0) {
setWidth(size.width);
setHeight(size.height);
return;
}
// 存在子节点时,只监听宽高变化
setWidth(transform.bounds.width);
setHeight(transform.bounds.height);
};
useEffect(() => {
const updateSize = () => {
// 无子节点时
if (node.blocks.length === 0) {
setWidth(size.width);
setHeight(size.height);
return;
}
// 存在子节点时,只监听宽高变化
if (width !== transform.bounds.width) {
setWidth(transform.bounds.width);
}
if (height !== transform.bounds.height) {
setHeight(transform.bounds.height);
}
};
updateSize();
const dispose = transform.onDataChange(() => {
updateSize();
updatePorts();
});
return () => dispose.dispose();
}, [transform]);
}, [transform, width, height]);
useEffect(() => {
// 初始化触发一次
updateSize();
}, []);
return (
<ContainerNodeContainerStyle

View File

@ -102,6 +102,7 @@ export class NodeIntoContainerService {
x: parentTransform.position.x + nodeJSON.meta!.position!.x,
y: parentTransform.position.y + nodeJSON.meta!.position!.y,
});
parentTransform.fireChange();
await this.nextFrame();
parentTransform.fireChange();
this.emitter.fire({