1.在項目中用 antd的tree組件的時候,遇到兩個問題css
1.文件名太長的話 會超出容器 很難看,解決方法以下node
` 引入css在global下設置
:global {
.ant-tree li .ant-tree-node-content-wrapper{
height:auto;
}
.ant-tree-node-content-wrapper{
white-space: normal;
max-width: 100%;
}
}api
`數組
2.節點都展開的話 會過高了。也會撐開盒子,影響美觀。
解決方法: 一方面 展開一個的時候 ,能夠收起同級別其餘已經展開的。代碼以下,在tree的api裏 展開回調設置,同時 要tree組件綁定 state的展開節點數組。antd
onExpand = (a,b) => { if(b.expanded){ if(a.length>0){ a.splice(0,a.length-1) } } this.setState({ expandedKeys:a }) };
app
上邊的代碼有一個問題 ,就是不能 跨級 收起。改後的代碼以下this
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 }) } };
另外一方面就是 展現部分 顯示 查看更多... 這個我看看怎麼弄。spa