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

另一方面就是 展示部分 顯示 查看更多... 這個我看看怎么弄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM