首页 > 其他 > 详细

antd 踩坑:为什么 Tree defaultExpandAll defaultExpandedKeys 在刷新后会失效?

时间:2020-08-11 21:29:39      阅读:462      评论:0      收藏:0      [点我收藏+]

原因其实很简单。

 

              <Tree onSelect={handleTreeClick} defaultExpandedKeys={[rootOrgId]}>
                {this.renderTreeNodes(OrgTreeData.children)}
              </Tree>
renderTreeNodes = data => {
    if (!Array.isArray(data)) {
      return <></>;
    }
    return data.map(item => {
      if (item.children && item.children.length > 0) {
        return (
          <TreeNode title={item.title} key={item.key} dataRef={item}>
            {this.renderTreeNodes(item.children)}
          </TreeNode>
        );
      }
      return <TreeNode key={item.key} dataRef={item} {...item} />;
    });
  };

 

如果树节点数据时从接口获取的,那么,这样写就会有一个问题:

当 Tree 渲染的时候, TreeNode 还没有渲染!

也就是说,Tree 和 TreeNode 渲染不是同步的。

这样当然会造成各种问题。只是碰到了这个而已。

 

解决方法很简单,让他们一起渲染就行。

            {
              OrgTreeData && OrgTreeData.children ? 
              <Tree onSelect={handleTreeClick} defaultExpandedKeys={[rootOrgId]}>
                {this.renderTreeNodes(OrgTreeData.children)}
              </Tree> : <></>
            }

以上。

antd 踩坑:为什么 Tree defaultExpandAll defaultExpandedKeys 在刷新后会失效?

原文:https://www.cnblogs.com/foxcharon/p/13479719.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!