为了账号安全,请及时绑定邮箱和手机立即绑定

ant-design tree 中拖拽排序后 rc-tree内部的expandKeys的状态出错了

ant-design tree 中拖拽排序后 rc-tree内部的expandKeys的状态出错了

慕容708150 2019-03-14 18:15:51
ant-design tree 中拖拽排序后 rc-tree内部的expandKeys的状态出错了复现步骤:拖拽排序后,在排序的节点上添加子节点,通过设置expandKeys还是无法使该节点无法展开, 而且会导致其他节点的展开收起状态出错,需要手动点击下叶子几点的展开收起,方可恢复正常。 正常情况下,添加子节点通过设置expandKeys可以使当前节点展开,不知道是这个问题该如何解决这是正常情况下的样子这是排序完以后添加子节点的样子,标记处没有自动展开这是添加子节点的代码let groups = this.props.groupList.listconst { expandedKeys } = this.state    if( !!groups ){    groups.map( (group,index) => {        group.isAddInp = false        if( group.dg_id === 'ready' )            groups.splice(index,1)        })}let addChildTreeNode = {    pId: node.dg_id,    name: '',    dg_id: 'ready',    isAddInp: true}groups.push(addChildTreeNode)let treeData = this.buildTreeDatas(groups, "0")if(node.dg_id !== '0' && expandedKeys.indexOf(node.dg_id) === -1 )    expandedKeys.push(node.dg_id)this.setState({    treeData,    expandedKeys,    autoExpandParent: false})
查看完整描述

1 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

个人觉得你应该没有将新加的结点的key放到expandedKeys里面去。
你查一下state的变化,就知道了。
如果expandedKeys中包含了刚才新加的结节,而没有展开的话,你可以尝试在添加结点的state后,再设置expandedKeys
如:

this.setState({treeData}, () => this.setState({expandedKeys}));


查看完整回答
反对 回复 2019-04-10
  • 1 回答
  • 0 关注
  • 621 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号