antvis/G6

vue3 用ref定义变量接收new Graph初始化值,在使用此变量添加数据,拖动节点会报导致页面卡死 #6097

lhuazai posted onGitHub

Describe the bug / 问题描述

vue3 用ref定义变量接收new Graph初始化值,在使用此变量添加数据,拖动节点会报导致页面卡死 使用正常的变量接收new Graph初始化值没有问题

No response

Steps to Reproduce the Bug or Issue / 重现步骤

`<template> <div id="graphDom" style="width: 600px;height: 600px;border: 1px solid #ccc"></div> </template>

<script setup lang="ts" name=""> import { Graph } from '@antv/g6' import { onMounted, ref } from 'vue'; let graphObj = ref(); const initGraph = () => { graphObj.value = new Graph({ container: document.getElementById('graphDom'), width:600, height: 600, layout: { type: 'combo-combined', comboPadding: 2, }, plugins:['grid-line'], node: { style: { size: 20, labelText: (d) => d.id, }, palette: { type: 'group', field: (d) => d.combo, }, }, edge: { style: (model) => { const { size, color } = model.data; return { stroke: color || '#99ADD1', lineWidth: size || 1, }; }, }, behaviors: ['drag-element', 'drag-canvas', 'zoom-canvas'], autoFit: 'view', data: { nodes: [], edges: [], combos: [] } }) graphObj.value.render(); } onMounted(()=> { initGraph(); const data = { nodes:[{"id":"0","combo":"a"},{"id":"1","combo":"a"},{"id":"2","combo":"b"}], edges:[{"source":"0","target":"1"},{"source":"0","target":"2"}], combos:[{"id":"a","data":{"label":"Combo A"}},{"id":"b","data":{"label":"Combo B"}}] }; graphObj.value.addData(data); graphObj.value.render(); }) </script>`

G6 Version / G6 版本

🆕 5.x

Operating System / 操作系统

Windows

Browser / 浏览器

Chrome

Additional context / 补充说明

Snipaste_2024-07-30_17-44-20 Snipaste_2024-07-30_17-44-36


不能使用响应式数据,使用const常量

posted by mivui 9 months ago

我也碰到了,跟是否使用const或ref没有关系吧,,反正只要往里面加入新的NodeData或EdgeData,就会出现这个问题。卡死,,要杀浏览器的那种。

posted by longzou 9 months ago

只能使用常量 const 或者 shallowRef 定义,使用ref定义的值接收就会炸浏览器

posted by zyh0yh 9 months ago

这么重要的事文档居然不细嗦😤

posted by wyf195075595 6 months ago

这么重要的事文档居然不细嗦😤

详见常见问题:https://g6.antv.antgroup.com/manual/faq#%E4%BD%BF%E7%94%A8%E5%8E%9F%E7%94%9F-javascript-%E5%AF%B9%E8%B1%A1%E6%95%B0%E6%8D%AE

其中有提到,我们会在 Vue 使用教程板块再次强调

posted by Aarebecca 6 months ago

Fund this Issue

$0.00
Funded

Pull requests