antvis/G6

G6 4.8.21 官方示例决策树中增加内置behavior(click-select)无效 #5939

karasu10 posted onGitHub

Describe the bug / 问题描述

g6 4.8.21 官方示例中,决策树图的示例代码内在modes 增加了'click-select'属性,在defaultConfig中增加了nodeStateStyle(selected)选中节点的样式,并且在node:click事件中,进行了graph.setItemState(item, 'selected', true)操作,但是依然无法实现选中节点的效果。

https://g6.antv.antgroup.com/zh/examples/case/treeDemos/#decisionTree

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

// 组件props const props = { data: mockData, config: { padding: [20, 50], defaultLevel: 3, defaultZoom: 0.8, modes: { default: ['zoom-canvas', 'drag-canvas', 'click-select'] }, }, }; // 默认配置 const defaultConfig = { width, height, modes: { default: ['zoom-canvas', 'drag-canvas', 'click-select'], }, fitView: true, animate: true, defaultNode: { type: 'flow-rect', }, defaultEdge: { type: 'cubic-horizontal', style: { stroke: '#CED4D9', }, }, layout: { type: 'indented', direction: 'LR', dropCap: false, indent: 300, getHeight: () => { return 60; }, }, nodeStateStyles: { // 节点在 selected 状态下的样式,对应内置的 click-select 行为 selected: { // stroke: '#666', stroke: 'blue', lineWidth: 2, fill: 'blue', shadowColor: 'blue' } } }; graph.on('node:click', (e) => { const { item } = e; const node = item?.get('model'); graph.setItemState(item, 'selected', true) })

G6 Version / G6 版本

4.x

Operating System / 操作系统

Windows

Browser / 浏览器

Chrome

Additional context / 补充说明

G6 4.8.21,win10 22H2,chrome 126.0.6478.115


在决策树示例中,使用了自定义节点,并且主动托管了 setState 逻辑,但只处理了 collapse 状态。这导致如果添加点击选中交互,由于没有特别处理 selected 状态变化,因此没有反应。你可以在 setState 中额外处理选中状态,这样就可以解决问题了

posted by yvonneyx 6 months ago

我们已经对该问题进行了初步调查,并提供了一些建议来解决您遇到的情况。由于目前没有进一步的信息,我们将暂时关闭此问题。如果您在尝试我们的建议后仍然遇到问题,或者有更多的细节可以提供,请随时重新打开此 issue,或者发起一个新的,我们将很乐意进一步协助您 ❤️

posted by yvonneyx 6 months ago

Fund this Issue

$0.00
Funded

Pull requests