zoukankan      html  css  js  c++  java
  • antd tree组件文件名换行 + 点击展开时,自动收起同级其他展开目录

    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- 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
    		 })  
    	   }
    	  
      };
    

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

  • 相关阅读:
    PHP多维数组转为一维数组的方法实例
    PHP内存模拟分析
    linux windows mysql安装
    Ubuntu 连接Xshell 不能连接
    Linux软链挂载
    python 数据库连接 CRUD
    RabbitMQ 实现广播订阅
    Redis 实现广播订阅
    python-切片
    python中的3目运算(3元表达式)
  • 原文地址:https://www.cnblogs.com/chengyunshen/p/10523584.html
Copyright © 2011-2022 走看看