当前位置: 首页 > 工具软件 > Fusion.js > 使用案例 >

fusion.design中使用树组件tree的时候,默认展开失效的问题及解决方案

滕学义
2023-12-01

1、问题描述:

	使用fusion中的树组件的时候,想默认展开全部或展开自定义的一些树节点时,不能够展开;

2、解决该问题时的测试:

	使用异步加载的时候,不能够展开树节点(出问题的代码);使用静态数据的时候,可以展开树节点(测试的代码);
	看到这里就很疑惑,为啥异步加载的不行呢,那么找到问题所在了,这个问题是由异步加载引起的,我从网上找了这个解决方案

3、出现问题的代码

<div className="dataSourceList scrollbar">
                        <Tree
                            dataSource={props.dataSetTree}
                            defaultExpandAll={true}
                            autoExpandParent={true}
                            selectedKeys={selectedDataSourceKeys}
                            onSelect={handleDataSourceTreeSelect}
                        >
                        </Tree>
                </div>

4、解决方案:

<div className="dataSourceList scrollbar">
          {props.dataSetTree && props.dataSetTree.length > 0 ? (
              <Tree
                  dataSource={props.dataSetTree}
                  defaultExpandAll={true}
                  autoExpandParent={true}
                  selectedKeys={selectedDataSourceKeys}
                  onSelect={handleDataSourceTreeSelect}
              >
              </Tree>
          ) : null}
      </div>

当没有数据的时候,不使用树组件,当有数据的时候再使用,这样这个问题就可以解决了;

5、这样解决完以后,还是有点小问题,例如:数据再次发生变化时,可能会默认展不开,这样就需要先再异步请求之前把之前的数据清空,然后再请求新的数据

 类似资料: