1.在项目中用 antd的tree组件的时候,遇到两个问题

1.文件名太长的话 会超出容器 很难看,解决方法如下

` 引入css在global下设置

:global {

.ant-tree li .ant-tree-node-content-wrapper{

height:auto;

}

.ant-tree-node-content-wrapper{

white-space: normal;

max-width: 100%;

}

}

`

2.节点都展开的话 会太高了。也会撑开盒子,影响美观。

解决方法: 一方面 展开一个的时候 ,可以收起同级别其他已经展开的。代码如下,在tree的api里 展开回调设置,同时 要tree组件绑定 state的展开节点数组。

onExpand = (a,b) => { if(b.expanded){ if(a.length>0){ a.splice(0,a.length-1) } } this.setState({ expandedKeys:a }) };

上边的代码有一个问题 ,就是不能 跨级 收起。改后的代码如下

   onExpand = (a,b) => {
if(b.expanded){
if(a.length>0){
a.splice(0,a.length-1)
}
this.setState({
expandedKeys:a
})
}else{
const key = b.node.props.children.map((obj,index)=>{
if(a.indexOf(obj.key)>-1){
return obj.key;
}
return ''
}).filter((v,index)=> v!== '');
//index 是点击收起节点的下级展开节点
const index = a.indexOf(key[0]); //因为展开的时候会收起兄弟节点 所以这里应该只有一个
if(index>0){
a.splice(0,index + 1); //从0开始 删除到点击的下一级已展开节点
}
this.setState({
expandedKeys:a
})
} };

另一方面就是 展示部分 显示 查看更多... 这个我看看怎么弄。

antd tree组件文件名换行 + 点击展开时,自动收起同级其他展开目录的更多相关文章

  1. antd Tree组件中,自定义右键菜单

    最近项目中,有一个需求是自定义antd的Tree组件的右键菜单功能. 直接上代码 class Demo extends Component { state = { rightClickNodeTree ...

  2. 关于 antd tree 组件的推拽操作

    最近项目中使用到 tree 组件的推拽操作, 按常理来说应该主要用到其中的 onDrop 事件,但其中的参数又没有详细的说明,只是在官网给了个例子,网上搜索后又没有发现到位的总结. 因此经过N次的测试 ...

  3. Js制作点击输入框时默认文字消失的效果

    (从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-02-17) 为了提高用户体验和易用度,一些设计师会对网页中用户经常用的东西进行优化,比如输入框.一般的输入框是怎样优化的呢 ...

  4. antd的Tree控件实现点击展开功能

    antd 的 Tree 控件没有提供点击展开的功能,只能通过左边的三角形实现展开和收起,没办法只好自己实现这个功能. 先看效果 如图实现的是类似 Mac 文件目录形式的结构,有箭头代表是个文件夹,点击 ...

  5. Antd组件库,利用Menu组件模拟一个简单Tree组件

    当前工作中,前端的主要技术栈用是vue. 那React怎么办呢?总不至于把他扔在墙角吧! 只能在一些很小的项目上,也只有自己一个前端的时候,悄悄的上React. 当然,React项目UI组件还是最喜欢 ...

  6. element中的tree组件实现菜单分配

    返回的菜单数据 tree组件的使用 <el-tree ref="menuList" // :data="menuList" // 展示数据 :props= ...

  7. 【技术博客】使用iview的Tree组件写一棵文件树

    本次项目的前端部分使用vue框架+iview组件构建,其中IDE的文件树部分使用了iview的Tree组件,但是Tree组件本身的接口功能极其有限,网上的相关资料也不多,在使用时费了一番功夫才摸索清楚 ...

  8. dwz tree组件 取得所选择的值

    DWZ的树结构是按<ul>,<li>的嵌套格式构成,最顶级的<ul>以class=”tree”标识. treeFolder, treeCheck, expand|c ...

  9. JQuery EasyUI Tree组件的Bug记录

    记录一下使用项目中使用EasyUI遇到的bug,废话少说直接上菜  - _-(bug)..... bug ::   .netcore创建一个web应用时候,会自动引入jQuery库以及一些插件,但是在 ...

随机推荐

  1. android中一些特殊字符的使用(如:←↑→↓等箭头符号)

    在项目中,有时候在一些控件(如Button.TextView)中要添加一些符号,如下图所示:                         这个时候可以使用图片的方式来显示,不过这些可以直接使用Un ...

  2. Eclipse Golang 开发环境搭建 GoClipse 插件

    Windows平台 下载完成后,直接双击安装即可 默认情况下,.msi文件会安装在 C:\Go 目录下.可以将 C:\Go\bin 目录添加到环境变量 PATH 中,方便调用命令. Go 里面有两个非 ...

  3. 为docker配置HTTP代理服务器

    背景: node1不能访问外网, node2可以访问外网,node1通过node2的代理服务来访问外网. 1. node1不能访问外网 vim /etc/resolv.conf 注释掉DNS配置文件 ...

  4. 【APP测试(Android)】--交叉事件

  5. Maven学习 四 Eclipse与Maven结合的配置

    本问承接Maven学习 三 第一步:配置本地仓库 (1)默认配置 查看 本地仓库的位置是在一个叫做setting.xml的配置文件中设置,如果我们不配置,会使用开发工具自己集成的一个setting.x ...

  6. drf6 权限和频率控制组件

    对某件事情决策的范围和程度,我们叫做权限,权限是我们在项目开发中非常常用到的. DRF框架给我们提供的权限组件 权限组件 之前DRF的版本和认证,知道了权限和频率跟版本认证都是在initial方法里初 ...

  7. 【转】comparable Interface

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 , ...

  8. okhttp 调用相机 上传服务器

    MainActivity package com.bwie.lianxi1; import android.content.Intent; import android.database.Cursor ...

  9. 前端vue框架 路由的安装及使用

    安装: 1.cmd下输入: npm install vue-router --save //安装路由 2.npm run dev //重新启动 使用: 1.在mian.js下引入路由 import V ...

  10. Js之设置日期时间 判断日期是否在范围内

    var now = new Date(); var startDate = new Date(); startDate.setFullYear(2018, 08, 07); startDate.set ...