js使用递归方法获取多层级key

JS使用递归方法获取多层级key值
需求是这样:默认要展开列表的子集,官方提供的属性是‘defaultExpandedRowKeys’, 必须是个数组

 componentDidMount(){
    
    
    const {
    
    dataSource} = this.state; 
    const getTableKey = (data) => {
    
    
    const parentKey = [];
    data.forEach((item) => {
    
    
      if (item.subList && item.subList.length) {
    
    
          parentKey.push(item.key);
          const temp = getTableKey(item.subList);
          if (temp.length) {
    
    
              parentKey.push(...temp);
          }
      }
    });
    return parentKey;
    }; 
    const arrKey = getTableKey(dataSource); 
    this.setState({
    
    arrKey}) 
  };

<Table 
     columns={
    
    columns}  
     dataSource={
    
    dataSource}  
     childrenColumnName="subList" 
     bordered
     pagination={
    
    false}
     defaultExpandedRowKeys={
    
    this.state.arrKey}  
   />

如图所示:
在这里插入图片描述

注释:文章重点在于这个递归方法,因为表格的结构子集是未知的所以递归方法是最好的方案;

猜你喜欢

转载自blog.csdn.net/weixin_45103130/article/details/125976335