Replies: 1 comment 1 reply
-
欢迎给 G6 提PR,你可以将这些问题提交到 https://github.com/antvis/G6/blob/v5/packages/site/docs/manual/faq.zh.md ,这样我们会在下次更新站点时将这些内容在官网 https://g6-next.antv.antgroup.com/manual/faq 展示出来 |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Learning antv/g6 encountered problems
version update
antv/g6 v5.0.21
antv/g6 v5.0.20antv/g6 v5.0.19Q&A
Q1:antv/g6 源码映射指向不存在路径
相关
issue
:#4546 (comment)在项目启动编译时提示 warning 信息,不影响项目正常运行
点击展开/关闭
解决方案:关闭构建工具生成源码映射文件开关
根目录新增
.env
文件,内容如下Q2:手动配置色板颜色不生效
色板作用:当 node 数量庞大时,更方便的为 node 配置颜色。
palette会根据
{nodes:[id:xxx,data:{customField:xxx}]}
中的customField
不同值来区分有几种颜色。假设
customField: i % 2 === 0 ? "value1" : "value2"
,会返回两个不同的值,那么就会从自定义的 color 数组中取出两种颜色(返回什么不重要,只看有几种value。)如果数组只有一个颜色,那么所有 node 都是相同的颜色;如果不配置color 数组或为空,则默认使用palette内置颜色。
解决方案:
color
属性传递数组Q3:grid-line 插件不生效
点击展开/关闭
增加以上配置仅仅只增加上图中的横线。预期应该如下
点击展开/关闭
初步判断是使用
autoResize: true
而没有指定height
影响,但关闭自动画布且配置height
仍没有效果。实际原因:容器
<div ref={containerRef} />
本身没有设置高度,Graph 可能无法正确计算出合适的大小。如果要启用grid-line画布插件,需要给父元素 div 设置宽高,在graph 配置中是无效的。解决方案:给父容器设置宽高
Q4:关于状态样式使用
G6 预设的状态包括:
G6 中的状态类型是一个字符串数组(string[]),即一个元素可以同时存在多个状态,例如一个节点可以同时处于选中和悬停状态。
可以在
data
中预设 node 的状态。可以在样式映射中配置状态有哪些样式。
Q5:无法使用树图布局
v5合并了图和树图,但是无法使用树图布局。
在layout下的 type 类型声明中也没有树图相关的值。
点击展开/关闭
解决方案:从源码跳转到的 Layout TS 类型声明布局名不准确(官方解释说只是用来做内部识别用的),所有内置布局参考
G6/packages/g6/src/registry/build-in.ts
Line 188 in b49ce81
Q6:tooltip插件启用 enable 后自动移除失效
假设需求:hover或click时只让node有提示,edge没有提示。
解决方案:官方已修复#6270
Q7:三次贝塞尔曲线-水平(edge)没有连接在 node 的边缘中心
点击展开/关闭
修复后效果
点击展开/关闭
解决方案:在 node 的样式对象中添加如下配置
过时方案:
点击展开/关闭
以上方案还是会有偏差。
最新方案:应该使用
portLinkToCenter: true
。详情Q8:无法根据 label 内容长度动态设置 node 宽度
官方回应
最初解决方法(不是很完美,只能针对 label 是纯中文的情况)
目前最新可行的解决方案:计算文本在浏览器中的实际渲染宽度
Q9:自定义节点的 edge 总是连接在 node 内部而不是边缘
效果图
width: "100%"
或midWidth: "100%"
会导致 edge 连接在 node 内部而不是边缘移除
width: "100%"
或midWidth:'100%'
后效果分析:最开始以为是自定义节点
padding
导致的,但移除后仍然有这个问题。经过反复调试,发现是width: "100%"
或midWidth:'100%'
导致的。解决方案:移除掉
width: "100%"
或midWidth:'100%'
。Q10: edge 没有 id 会有什么影响?(已知如果使用 edge,那么 node 是必需要有 id 的)。
A10:如果 edge 没有 id 那么
G6
会自动给 edge 生成默认 id,id 值是源 node 和目标 node 的拼接 id,如sourceId_targetId
但是要注意:**只有当 id 为 undefined 或 id字段不存在 时,才会默认使用 node 的 id 作为默认值。
可能有些后端会给前端返回 edge id,但是因为后端没有 undefined 类型,而
null
、""
、0
是不会触发默认 id 计算,所以要格外注意。参考
Beta Was this translation helpful? Give feedback.
All reactions