当前位置: 首页 > 知识库问答 >
问题:

前端 - 请问如何进行antd的组件的内部的修改进而二次开发它,修改antd/tree内部的代码给item添加点击事件?

缑勇锐
2023-09-28

在参考antd/tree的时候,
我想要关闭checkableselectable,然后想要有点击的功能。
但是我看文档是没有这个功能的。

1、所以很想基于antd/tree进行二次封装做到可点击。
请问有什么可以指导一下可以做到此需求呢?

2、因为我看组件是这样,不知怎么修改内部内容

<DirectoryTree      className={styles.customAntTreeSwitcher}      multiple      defaultExpandAll      onSelect={onSelect}      onExpand={onExpand}      treeData={props.data}    />

如何才能做到修改antd/tree内部的代码给每个item添加点击事件呢。

传输的数据都是如下:

const treeData: DataNode[] = [  {    title: 'test-01',    key: '0-0',    children: [      { title: 'test001', key: '0-0-0', isLeaf: true, selectable: false },      { title: 'test002', key: '0-0-1', isLeaf: true, selectable: false },      { title: 'test003', key: '0-0-2', isLeaf: true, selectable: false },    ],    selectable: false,    icon: false,  },  {    title: 'test-02',    key: '0-1',    children: [      { title: 'test004', key: '0-1-0', isLeaf: true, selectable: false },      { title: 'test005', key: '0-1-1', isLeaf: true, selectable: false },    ],    selectable: false,    icon: false  },];

不知道如何进行二次开发请各位老师指导一下呢。

共有3个答案

夔博
2023-09-28

image.png

汲丰茂
2023-09-28

你如果只是想要点击事件 直接添加即可

 <Tree.DirectoryTree      multiple      defaultExpandAll      onSelect={()=>{ }}      checkable={false}      selectable={false}      onClick={(event)=>{        console.log('点击事件event',event, event.target);      }}      treeData={treeData}    />
訾凯歌
2023-09-28
import React from 'react';import { Tree } from 'antd';const { DirectoryTree } = Tree;const treeData = [  {    title: <div onClick={() => handleClick('0-0')}>test-01</div>,    key: '0-0',    children: [      { title: <div onClick={() => handleClick('0-0-0')}>test001</div>, key: '0-0-0', isLeaf: true },      { title: <div onClick={() => handleClick('0-0-1')}>test002</div>, key: '0-0-1', isLeaf: true },      { title: <div onClick={() => handleClick('0-0-2')}>test003</div>, key: '0-0-2', isLeaf: true },    ],  },  {    title: <div onClick={() => handleClick('0-1')}>test-02</div>,    key: '0-1',    children: [      { title: <div onClick={() => handleClick('0-1-0')}>test004</div>, key: '0-1-0', isLeaf: true },      { title: <div onClick={() => handleClick('0-1-1')}>test005</div>, key: '0-1-1', isLeaf: true },    ],  },];function handleClick(key) {  console.log('Item clicked:', key);}const MyTree = () => {  return (    <DirectoryTree      multiple      defaultExpandAll      treeData={treeData}    />  );};export default MyTree;
 类似资料:
  • 在使用antd tabs的时候: 这些css样式请问是否可以进行更改呢? 我想把这些Tab的样式做的紧凑: 更新1 我这样配置样式,引入,效果没有变化。 查看控制台没有添加上: 使用import 这个代码是加不上的吗?

  • 基于antd 的 折叠块 我使用此代码做到: 折叠块的使用(添加了一个按钮) 基于此折叠款,我加了一个按钮,但是现在有一个需求就是点击折叠块上面的header可以折叠,但是我不想点击button它也折叠。我尝试了用: 但是并不生效。

  • antd的select组件,高度是32,没有圆角。 ui说需要改成 高度28,圆角5px。 要怎么改全局都生效?

  • 问题内容: 我一直在使用 buildroot 以便使用 uclibc 构建工具链。现在, buildroot 下载所有软件包,解压缩并构建所有软件包。 我想更改工具链的 uclibc 源,然后用新的源重新编译工具链,但我只是不明白如何用漂亮的方式完成它。 完成构建后,可以在“ < buildroot-src> / output / build ” 中找到所有提取的源。但是更改它们不会给我任何帮助,

  • 我正在通过Postgres Jsonb留档,但无法找到一个小问题的解决方案,我有。 我有一张桌子:MY_TABLE 具有以下列: 用户、姓名、数据和购买 需要注意的是,“数据”是一个jsonb,有多个字段。“Data”中的一个字段是“Attribute”,但它当前是一个字符串。我如何才能将其更改为字符串列表? 我曾尝试使用json\u build\u数组,但没有任何运气 例如,我希望我的jsonb

  • M1处理器上的macOS似乎阻止了修改后的二进制文件的运行。例如,一个简单的C hello world: 如果我用Clang编译并运行它,一切都会按预期进行。但是,如果我进入一个十六进制编辑器并更改= 我认为这是因为M1上有更严格的代码签名限制(https://eclecticlight.co/2020/08/22/apple-silicon-macs-will-require-signed-co