点击展开时自动收起其它同级目录

    1. onExpand = (a,b) => {
    2. if(b.expanded){
    3. if(a.length>0){
    4. a.splice(0,a.length-1)
    5. }
    6. this.setState({
    7. expandedKeys:a
    8. })
    9. }else{
    10. const key = b.node.props.children.map((obj,index)=>{
    11. if(a.indexOf(obj.key)>-1){
    12. return obj.key;
    13. }
    14. return ''
    15. }).filter((v,index)=> v!== '');
    16. //index 是点击收起节点的下级展开节点
    17. const index = a.indexOf(key[0]); //因为展开的时候会收起兄弟节点 所以这里应该只有一个
    18. if(index>0){
    19. a.splice(0,index + 1); //从0开始 删除到点击的下一级已展开节点
    20. }
    21. this.setState({
    22. expandedKeys:a
    23. })
    24. }
    25. };