【antd】Tree組件實現展開樹節點

做樹組件的時候有一個需求,在請求詳情頁面的時候自動展開勾選的樹節點,如下:



下面來說一下實現這個過程的思路:

1.在請求詳情頁面的時候要拿到選中的key的數組(一般都是後臺返給的)
2.設置expandKeys屬性,將數組賦值給expandKeys;
3.還需要加入onExpand事件和autoExpandParent屬性

注意⚠️:如果只有expandKeys沒有onExpand事件,則出現的情況是值能顯示出來展開的Tree,但是點展開功能的時候無反應;autoExpandParent屬性是:是否自動展開父節點,如果爲true的話,關閉展開功能失效,所以要在onExpand的時候讓這個屬性變爲false
下面我們就按照這個步驟走:

  state = {
    expandedKeys: [],
    autoExpandParent: true,
  };
     //賦值
      getRoleInfo = () => {
        get_department_info({ id: Id }).then(res => {
          let data = res.data.responseData;
          this.setState({
            expandedKeys: data.parentIds  //這步驟把數據存放在depExpandKeys變量中
            })
        });
      };

  //展開方法
  onExpand = expandedKeys => {
    this.setState({
      expandedKeys,
      autoExpandParent: false,
    });
  };

  <Tree
        checkable
        onExpand={this.onExpand}
        expandedKeys={this.state.expandedKeys}
        autoExpandParent={this.state.autoExpandParent}
        onCheck={this.onCheck}
        checkedKeys={this.state.checkedKeys}
      >
        {this.renderTreeNodes(treeData)}
      </Tree>

這樣就OK了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章