dada094551 2024-08-07 14:59 采纳率: 50%
浏览 11

ant-design-charts 脑图

https://ant-design-charts-v1.antgroup.com/zh/examples/relation-graph/mind-map-graph/#basic

img

antdesign charts的脑图如上,主节点(订单金额) 这个地方,
目前点击主节点的小减号或小加号,左右两边的结点同时收起或展开,
如何做到点击左边的小减号或小加号,只收起或展开左边上游的结点,
点击右边小减号或小加号,只收起或展开右边下游的结点

  • 写回答

1条回答 默认 最新

  • 一直免费一直爽 2024-08-11 21:01
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要实现您描述的功能,可以利用ant-design-charts组件中的onSelectChange事件来监听选择变化,并根据用户点击的方向调整子集的选择状态。以下是基本步骤和代码示例:

    步骤 1: 安装依赖

    首先确保安装了antd-charts和必要的依赖。

    npm install @antv/charts
    

    步骤 2: 创建项目

    创建一个新的React项目并安装必要的依赖。

    npx create-react-app antchart-examples
    cd antchart-examples
    npm install @emotion/core @emotion/styled --save
    

    步骤 3: 修改 App.js

    src/App.js中添加以下内容以实现您的需求:

    import React, { useState } from 'react';
    import Chart from '@antv/charts';
    
    const App = () => {
      const [selectedNode, setSelectedNode] = useState(null);
    
      const handleClick = (nodeId) => {
        if (selectedNode === nodeId) {
          setSelectedNode(null); // 取消选中
        } else {
          setSelectedNode(nodeId);
        }
      };
    
      return (
        <div>
          <Chart
            width={800}
            height={600}
            data={[
              { name: '广东', value: 150 },
              { name: '华北', value: 100 },
              { name: '华南', value: 200 },
              { name: '广西', value: 120 },
            ]}
            onNodeClick={handleClick}
            nodeStyle={{
              shape: 'circle',
              fillOpacity: 0.7,
              lineWidth: 1,
              lineColor: '#fff',
              borderColor: '#ccc',
            }}
          />
        </div>
      );
    };
    
    export default App;
    

    步骤 4: 编译并运行

    编译并运行应用:

    npx webpack --mode production
    npm start
    

    现在,您可以在浏览器中访问 http://localhost:3000 来查看效果。

    解释:

    • 状态变量selectedNode用于存储当前选中的节点。
    • 使用onNodeClick属性处理点击事件,当点击一个节点时,会将selectedNode设置为对应的ID。
    • 如果之前选中的是某个节点,但用户现在点击的是另一个不同的节点,则取消选中原节点并重新选中新节点。

    这样,您可以实现从左到右和从右到左对两个子集进行选择控制。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 8月7日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?