[Bug]: Using addData for rendering, the result is a bit unclear every time #6658
Labels
bug
Need Improvement
Lack of information or incorrect format
status: waiting for maintainer
These issues have not yet been reviewed by a maintainer
v5
Describe the bug / 问题描述
Reproduction link / 复现链接
No response
Steps to Reproduce the Bug or Issue / 重现步骤
import {
Graph,
register,
ExtensionCategory,
AutoAdaptLabel,
DragCanvas,
ClickSelect,
ZoomCanvas,
DragElement,
} from '@antv/g6';
register(ExtensionCategory.BEHAVIOR, 'AutoAdaptLabel', AutoAdaptLabel);
const default_size = 48;
export const registerDefaultGraph = (
graph: Graph,
data: any,
data_type?: 'gitech_finance' | 'default'
) => {
if (!graph || !data) return;
const dataType = data_type || 'default';
const [width, height] = graph.getSize();
console.log(width, height, '11111111111');
const centerX = width / 2;
const centerY = height / 2;
// 先清空数据
graph.clear();
const processedNodes = data.nodes.map((node: any) => ({
...node,
size: default_size,
style: {
...node.style,
x: node?.x ?? centerX,
y: node?.y ?? centerY,
},
}));
// 设置默认布局
graph.setLayout({
type: 'force',
animation: false,
//animated: true, // 启用布局动画
// preventOverlap: true,
});
graph.addData({
nodes: processedNodes,
edges: data.edges,
});
// 设置行为
graph.setBehaviors((behaviors) => {
console.log(behaviors, '默认行为');
return [
...behaviors,
{ type: 'AutoAdaptLabel', enable: true },
{ type: 'zoom-canvas', enable: true },
{ type: 'drag-canvas', enable: true },
{ type: 'click-select', animation: true, multiple: true },
];
});
console.log(graph.getBehaviors(), '默认行为');
// 设置插件
graph.setPlugins((plugins) => {
console.log(plugins, '插件');
return [...plugins, { type: 'minimap' }];
});
// 添加数据前先打印检查
console.log('Processed Nodes:', data.nodes);
console.log('Processed Edges:', data.edges);
try {
graph.render();
setTimeout(() => {
// 确保图形完全布局后再进行视图调整
graph.fitCenter({
duration: 1530,
});
}, 2000);
graph.on('beforerender', function () {
console.log('-----------------------render开始-----------------', graph.getData());
});
graph.on('afterrender', function () {
console.log('-----------------------render用时-----------------', graph.getData());
});
} catch (error) {
console.error('Graph update failed:', error);
console.error('Nodes:', data.nodes);
console.error('Edges:', data.edges);
throw error;
}
};
G6 Version / G6 版本
Please select / 请选择
OS / 操作系统
Browser / 浏览器
The text was updated successfully, but these errors were encountered: