V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
React
V2EX  ›  React

蚂蚁金服的 Tree 树形控件如何才能在选择的节点中插入新节点?

  •  
  •   elone · 57 天前 · 368 次点击
    这是一个创建于 57 天前的主题,其中的信息可能已经有所发展或是发生改变。

    官方文档中没有这个功能,我想实现这个功能 , google 了一圈也没看到有相关的实现,我就是想问问,有没有官方的这方面的实现。

    我就是想实现图中这样的功能 ,点击新建按钮会有焦点所在的目录下创建新目录 。

    简单总结我的意图:在指定的树节点插入新建节点

    6 回复  |  直到 2017-02-27 21:06:07 +08:00
        1
    AdamChrist   57 天前
    直接更新 tree 绑定的数据..重新渲染不是可以了么?
    还要设置一下 expandedKeys checkedKeys 等等..
        2
    AdamChrist   57 天前
    我说的前提是弹框增加方式.而不是图中的这种增加方式..
        3
    elone   57 天前
    @AdamChrist #2 我现在可以实现在指定的节点之下创建一个新 input 节点,但是默认看不到,只有在缩起树节点再重新展开的时候 ,新的节点才会渲染出来。有办法解决这个问题吗?
        4
    AdamChrist   57 天前
    这个没有做过类似的..应该是没有 render 的问题..你看下文档最下面的有句话:
    "树节点可以有很多,但在设置 checkable 时,将会花费更多的计算时间,因此我们缓存了一些计算结果( this.treeNodesStates )来复用,避免多次重复计算,以此提高性能。但这也带来了一些限制,当你异步加载树节点时,你需要这样渲染树:
    {this.state.treeData.length
    ? <Tree>{this.state.treeData.map(data => <TreeNode />)}</Tree>
    : 'loading tree'} "
    看看这不是这个原因造成的?如果还是有问题..那去 GitHub 上提 issue 吧
        5
    elone   57 天前 via Android
    @AdamChrist 好的,谢谢你
        6
    elone   56 天前
    @AdamChrist #4 搜索了一番之后,发现在 State 改变之后调用 this.forceUpdate(); 就可以实现数据的更新。然而我在 stackoverflow 看到所有人都一致表示 应该尽量避免使用 forceUpdate ,但我还不知道使用它会有什么后果,以及有什么替代的方法。
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   2016 人在线   最高记录 2466   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.7.5 · 57ms · UTC 08:33 · PVG 16:33 · LAX 01:33 · JFK 04:33
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1