ant-design tree 中拖拽排序后 rc-tree内部的expandKeys的状态出错了
复现步骤:
拖拽排序后,在排序的节点上添加子节点,通过设置expandKeys还是无法使该节点无法展开,
而且会导致其他节点的展开收起状态出错,需要手动点击下叶子几点的展开收起,方可恢复正常。
正常情况下,添加子节点通过设置expandKeys可以使当前节点展开,不知道是这个问题该如何解决
这是正常情况下的样子
这是排序完以后添加子节点的样子,标记处没有自动展开
这是添加子节点的代码
let groups = this.props.groupList.list
const { 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
})
个人觉得你应该没有将新加的结点的
key
放到expandedKeys
里面去。你查一下
state
的变化,就知道了。如果
expandedKeys
中包含了刚才新加的结节,而没有展开的话,你可以尝试在添加结点的state
后,再设置expandedKeys
。如: