antd中Tree组件使用方法个人笔记

news2024/11/18 22:54:04

一、前言

最近在自己自学前端,不清楚学习路线,只能盯着公司的前端项目硬看。

公司的前端项目是react框架,Ant Design Pro。

之前刚把router.config.js的逻辑理顺,目前准备开发个简单的前端页面。

在此总结下antd中<Tree>组件的使用方法。

antd组件官网api如下:

https://3x.ant.design/components/tree-cn/

二、个人笔记

1.首先,项目中有一个页面用到了<Tree>组件,展示样例如下:
在这里插入图片描述
2.以本人项目为例,这个页面的入口是http://localhost:8001/MyPage/Mylist,这个url会在router.config.js里配置,映射到页面文件;

      {
        path: '/MyPage',
        name: 'MyPage',
        routes: [
          {
            path: '/MyPage/Mylist',
            name: 'Mylist',
            component: './Mylist/index',
          },
        ],
      }

页面文件路径为...\项目名\src\pages\Mylist\index.jsx

3....\项目名\src\pages\Mylist\index.jsx这个文件中,有这样的一段:

import Home from './home';

  getView = () => {
    let result = <Home />;
    return result;
  };

  render() {
    return <div>{this.getView()}</div>;
  }

这样,页面就会显示...\项目名\src\pages\Mylist\home.jsx这个文件里的内容。

4....\项目名\src\pages\Mylist\home.jsx这个文件中,有这样的一段:

import { Card, Col, Input, Row, Tree, Spin } from 'antd';

  render() {
    const { TrainSet } = this.props;
    const { treeData, expandedKeys, autoExpandParent, selectedKeys } = TrainSet;

    return (
                  <Tree
                    onExpand={this.onExpand}
                    onSelect={this.onSelect}
                    expandedKeys={expandedKeys}
                    selectedKeys={selectedKeys}
                    autoExpandParent={autoExpandParent}
                    treeData={treeData}
                  />
    );
  }

这段的意思是,用antd的框架方法中引入Tree,然后下面就可以使用<Tree>组件了;
然后取到const treeData = this.props.TrainSet.treeData,在treeData={treeData}这里显示,就可以让页面展示出树形结构的内容了。
需要注意,<Tree>标签里的内容,都是框架里固定的名字,treeData的内容就是页面树结构展示的内容;详细用法可以看官网。

5.const treeData的内容,是这样取到的:

(1)首先,...\项目名\src\pages\Mylist\home.jsx这个文件中,有这样的一段:

  //页面加载完后会调用这个方法
  componentDidMount() {
    this.onRefesh();
  }

  onRefesh = () => {
    const { dispatch } = this.props;

    // 树的内容,给后端发请求获得返回值
    dispatch({
      type: 'TrainSet/fetchTreeNodes',
      queryPara: {},
      callback: resp => {
        this.generateList(resp);
        dispatch({
          type: 'OnlineTrainSet/initSearchSet',
          searchSet: searchSetList,
        });

      },
    });
  };

这段,先获得到const dispatch = this.props.dispatch方法,然后使用这个方法,给后台发请求。

(2)其中,type: 'TrainSet/fetchTreeNodes'的意思是,有个文件...项目名\src\pages\Mylist\models\TrainSet.js,这个文件中有个fetchTreeNodes方法,这个dispatch就会调用这个方法。

(3)fetchTreeNodes方法代码如下:

    *fetchTreeNodes({ queryPara, callback }, { call, put }) {
      const response = yield call(services.post, '/api/treenodes', queryPara);
      if (response) {
        yield put({
          type: 'updateTreeData',
          treeData: response,
          queryPara,
        });
        if (callback) callback(response);
      }
    },

这个方法就会给后台发post请求,请求的url为./api/treenodes(前缀有配置,例如http://localhost:8001/api/treenodes,这里先不找哪里配置前缀了);

如果收到了后台响应报文,就会执行yield put({ type: 'updateTreeData', treeData: response, queryPara, });这个方法,这个方法就会把返回报文response放到this.props.TrainSet.treeData里面,后续使用const treeData = this.props.TrainSet.treeData就可以把返回值response拿到了。

需要注意,this.props.TrainSet的意思是,页面叫TrainSet.js;而这个页面里把response用put方法放入treeData里了,所以用this.props.TrainSet.treeData就可以拿到response了。

6.回到这个代码, <Tree onExpand={this.onExpand} onSelect={this.onSelect} expandedKeys={expandedKeys} selectedKeys={selectedKeys} autoExpandParent={autoExpandParent} treeData={treeData} />,其中treeData={treeData}用到的就是后端返回给前端的报文,内容样例如下 :

[
    {
        "title": "A",
        "label": null,
        "value": "6",
        "key": "128",
        "param1": null,
        "param2": null,
        "param3": null,
        "param4": null,
        "param5": null,
        "param6": null,
        "param7": null,
        "param8": null,
        "param9": null,
        "pvalue": null,
        "text": null,
        "type": null,
        "disabled": false,
        "state": null,
        "children": [
            {
                "title": "A_A",
                "label": null,
                "value": "60",
                "key": "130",
                "param1": null,
                "param2": null,
                "param3": null,
                "param4": null,
                "param5": null,
                "param6": null,
                "param7": null,
                "param8": null,
                "param9": null,
                "pvalue": null,
                "text": null,
                "type": null,
                "disabled": false,
                "state": null,
                "children": [
                    {
                        "title": "A_A_A",
                        "label": null,
                        "value": "601",
                        "key": "132",
                        "param1": null,
                        "param2": null,
                        "param3": null,
                        "param4": null,
                        "param5": null,
                        "param6": null,
                        "param7": null,
                        "param8": null,
                        "param9": null,
                        "pvalue": null,
                        "text": null,
                        "type": null,
                        "disabled": false,
                        "state": null,
                        "children": []
                    },
                    {
                        "title": "A_A_B",
                        "label": null,
                        "value": "600",
                        "key": "134",
                        "param1": null,
                        "param2": null,
                        "param3": null,
                        "param4": null,
                        "param5": null,
                        "param6": null,
                        "param7": null,
                        "param8": null,
                        "param9": null,
                        "pvalue": null,
                        "text": null,
                        "type": null,
                        "disabled": false,
                        "state": null,
                        "children": []
                    }
                ]
            },
            {
                "title": "A_B",
                "label": null,
                "value": "61",
                "key": "281",
                "param1": null,
                "param2": null,
                "param3": null,
                "param4": null,
                "param5": null,
                "param6": null,
                "param7": null,
                "param8": null,
                "param9": null,
                "pvalue": null,
                "text": null,
                "type": null,
                "disabled": false,
                "state": null,
                "children": [
                    {
                        "title": "A_B_A",
                        "label": null,
                        "value": "611",
                        "key": "282",
                        "param1": null,
                        "param2": null,
                        "param3": null,
                        "param4": null,
                        "param5": null,
                        "param6": null,
                        "param7": null,
                        "param8": null,
                        "param9": null,
                        "pvalue": null,
                        "text": null,
                        "type": null,
                        "disabled": false,
                        "state": null,
                        "children": []
                    },
                    {
                        "title": "A_B_B",
                        "label": null,
                        "value": "610",
                        "key": "283",
                        "param1": null,
                        "param2": null,
                        "param3": null,
                        "param4": null,
                        "param5": null,
                        "param6": null,
                        "param7": null,
                        "param8": null,
                        "param9": null,
                        "pvalue": null,
                        "text": null,
                        "type": null,
                        "disabled": false,
                        "state": null,
                        "children": []
                    }
                ]
            }
        ]
    },
    {
        "title": "B",
        "label": null,
        "value": "n",
        "key": "339",
        "param1": null,
        "param2": null,
        "param3": null,
        "param4": null,
        "param5": null,
        "param6": null,
        "param7": null,
        "param8": null,
        "param9": null,
        "pvalue": null,
        "text": null,
        "type": null,
        "disabled": false,
        "state": null,
        "children": [
            {
                "title": "B_A",
                "label": null,
                "value": "n0",
                "key": "340",
                "param1": null,
                "param2": null,
                "param3": null,
                "param4": null,
                "param5": null,
                "param6": null,
                "param7": null,
                "param8": null,
                "param9": null,
                "pvalue": null,
                "text": null,
                "type": null,
                "disabled": false,
                "state": null,
                "children": [
                    {
                        "title": "B_A_A",
                        "label": null,
                        "value": "n01",
                        "key": "341",
                        "param1": null,
                        "param2": null,
                        "param3": null,
                        "param4": null,
                        "param5": null,
                        "param6": null,
                        "param7": null,
                        "param8": null,
                        "param9": null,
                        "pvalue": null,
                        "text": null,
                        "type": null,
                        "disabled": false,
                        "state": null,
                        "children": [
                            {
                                "title": "B_A_A_A",
                                "label": null,
                                "value": "n010",
                                "key": "343",
                                "param1": null,
                                "param2": null,
                                "param3": null,
                                "param4": null,
                                "param5": null,
                                "param6": null,
                                "param7": null,
                                "param8": null,
                                "param9": null,
                                "pvalue": null,
                                "text": null,
                                "type": null,
                                "disabled": false,
                                "state": null,
                                "children": []
                            }
                        ]
                    }
                ]
            }
        ]
    }
]

注意,这段json就是树形结构的,key是固定的;具体规则可以查看官方文档。(因为<Tree>组件是框架里的组件,所以后台返回的json报文需要是固定的才行)

7.到此,页面就可以显示树形结构了。

三、其它备注

1.antd中有许多组件,需要查看官网了解使用方法。
2.react项目由于大部分都是js,所以页面加载比vue快些。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/159867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法刷题 DAY04】剑指offer树3和队列与栈总结

JZ36 二叉搜索树与双向链表 描述 输入一棵二叉搜索树&#xff0c;将该二叉搜索树转换成一个排序的双向链表。如下图所示 注意: 1.要求不能创建任何新的结点&#xff0c;只能调整树中结点指针的指向。当转化完成以后&#xff0c;树中节点的左指针需要指向前驱&#xff0c;树中…

虹科新闻 | 虹科与weeve正式建立合作伙伴关系

近日&#xff0c;虹科与weeve正式建立合作伙伴关系&#xff0c;双方就工业应用自动化领域进行深入的交流与合作&#xff0c;未来将共同致力于为中国市场提供完整的物联网边缘服务解决方案&#xff0c;解决中国客户的物联网挑战。 虹科与weeve都表示十分期待这次的合作。“虹科…

day36【代码随想录】贪心算法之根据身高重建队列、用最少数量的箭引爆气球、无重叠区间

文章目录前言一、根据身高重建队列&#xff08;力扣406&#xff09;二、用最少数量的箭引爆气球&#xff08;力扣452&#xff09;三、无重叠区间&#xff08;力扣435&#xff09;前言 1、根据身高重建队列 2、用最少数量的箭引爆气球 3、无重叠区间 一、根据身高重建队列&…

魔改插线板,让电视控制周边设备开关机

一.我的需求 本人是一个极简主义风格的人&#xff0c;自从用了N1盒子刷了coreELEC 系统后&#xff0c;就不断的进行折腾&#xff0c;跟大家说下我的心路历程。 1.我家很少看电视&#xff0c;不想因为偶尔开一次电视就每个月交24块钱&#xff0c;所以把广电的机顶盒停掉了。 2.电…

TextView

1.简介 向用户显示文本的用户界面元素。 2.常见使用 2.1 设置文本内容 //xml 硬编码 <TextView android:text"文本"/> //xml 推荐放在string.xml,为了国际化考虑 <TextView android:text"string/app_name"/> //kotlin tv.text getStr…

零基础学员的shell脚本的写作思路详解

前言 这两天一直再批改学员的脚本作业&#xff0c;大多数学员写的很好&#xff0c;有的学员写的不太好。 还有一些还没有入门到学员不知道脚本该咋写。 不知道脚本怎么写的学员&#xff0c;绝大多数犯了一个错误&#xff1a;一上来就把脚本想的太复杂了。 我们今天单独聊聊这…

以研究用途搭建OpenStreetMap Virtualbox服务器

又到了新年伊始&#xff0c;下载OpenStreetMap全球数据的时候了。结果惊奇的发现&#xff0c;主站已经无法打开。仔细了解了原委&#xff0c;表示理解。好在PBF数据依旧可以获取&#xff0c;只是瓦片服务已经关停。 1.OpenStreetMap的主要问题 OpenStreetMap之所以被Blocked&…

力扣刷题记录——459.重复的字符串、461. 汉明距离、476. 数字的补数

本专栏主要记录力扣的刷题记录&#xff0c;备战蓝桥杯&#xff0c;供复盘和优化算法使用&#xff0c;也希望给大家带来帮助&#xff0c;博主是算法小白&#xff0c;希望各位大佬不要见笑&#xff0c;今天要分享的是——《459.重复的字符串、461. 汉明距离、476. 数字的补数》。…

Mysql数据库中的表

创建表 和之前的创建库差不多&#xff0c;需要多指定一个engine&#xff08;不写默认INNODB&#xff09;这个后面说 字符集还有校对规则不指定的话和库的保持一致 案例 图形化创建就不说了&#xff0c;主要就指令 # 演示关于创建表的操作 # 在db02创建表USER包含id-整形 name…

(9)go-micro微服务Redis配置

文章目录一 go-redis介绍二 go-redis安装三 redis初始化连接四 存储mail邮件五 存储token六 最后一 go-redis介绍 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库…

【验证码逆向专栏】某验二代滑块验证码逆向分析

声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff0c;若有侵权&#xff0c;请联系我立即删除&#xff01; 本文章未经许可禁止转载…

svn安装与配置并集成

svn安装 客户端安装与下载 下载地址&#xff1a;https://tortoisesvn.net/downloads.zh.html 根据自身设备情况下载 1、更换安装路径&#xff0c;点击next&#xff08;如果安装路径选择不了那么先点击next在点击back就可以选择安装路径了&#xff09; 2、如果需要集成idea在下…

详解“陌生的“位段

目录 一、什么是位段&#xff1f; 二、位段的内存分配 三、位段的应用 一、什么是位段&#xff1f; C 语言允许一个结构体中以位为单位来指定其成员所占内存长度&#xff0c;这种以位为单位的成员称为"位段"或"位域"&#xff08;bit field&#xff09;…

Golang——异常和error

Go 提供了两种处理错误 方式&#xff0c; 一 种是借助 panic和 recover 的抛出捕获机制&#xff0c; 另一种使用error 错误类型 一、异常 1、go没有try/catch&#xff0c;而是使用panic/recover。 panic包出异常&#xff0c;后续代码不再执行 recover再defer中捕获异常&#x…

c++--stack,queue,priority_queue

前言 对于栈和队列我们是不陌生的&#xff0c;在数据结构阶段已经学习过&#xff0c;记得当时我们还是用c语言将它一步一步造出来&#xff0c;因为压栈与出栈正好满足数组的尾插与头删&#xff0c;数组的代价是及小的。对于队列是头出队列&#xff0c;尾插。所以就栈的实现就用…

React 学习笔记总结(七)

针对React拓展相关的学习。 文章目录一. React 项目打包二. React扩展 之 setState两种写法三. React扩展 之 lazyLoad(懒加载)四、React的 stateHook五、React 的 Effect Hook六、React 的 RefHook七、React 的 Fragment八、React 的 Context九、React 的 PureComponent1. Com…

centos配置网卡自动获取ipv4和ipv6地址

环境&#xff1a; os&#xff1a;centos7 1.背景 正常网卡通过dhcp是不会自动获取ipv6地址的&#xff0c;一般手动执行dhclient -6 <网卡名>可以获取。 现在需求是&#xff1a;实现os启动后自动获取到ipv6地址 2.方法 在网卡对应的配置文件/etc/sysconfig/network-sc…

一、初识Node.js

一、初识Node.js 1.什么是Node.js Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 的官网地址&#xff1a; https://nodejs.org/zh-cn/ 2.Node.js中JavaScript运行环境 注意&#xff1a; 浏览器是 JavaScript 的前端运行环境。Node.js 是 JavaScript 的…

The VMware Authorization Service is not running 解决办法

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;Java案例分…

ARM惹众怒,美国芯片行业也开始抛弃它,跟随中国芯片支持新架构

ARM曾以为它已经垄断了移动芯片市场&#xff0c;因此可以肆意&#xff0c;甚至还传出计划提高芯片架构授权费的消息&#xff0c;去年还计划限制高通等美国芯片企业自研核心架构&#xff0c;此前它已得罪中国芯片&#xff0c;可以说ARM真正惹了众怒&#xff0c;如此情况下这些芯…