在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ ant-design tree 中拖拽排序后 rc-tree內部的expandK

ant-design tree 中拖拽排序后 rc-tree內部的expandKeys的狀態(tài)出錯了

ant-design tree 中拖拽排序后 rc-tree內部的expandKeys的狀態(tài)出錯了

復現(xiàn)步驟:

拖拽排序后,在排序的節(jié)點上添加子節(jié)點,通過設置expandKeys還是無法使該節(jié)點無法展開,
而且會導致其他節(jié)點的展開收起狀態(tài)出錯,需要手動點擊下葉子幾點的展開收起,方可恢復正常。
正常情況下,添加子節(jié)點通過設置expandKeys可以使當前節(jié)點展開,不知道是這個問題該如何解決

這是正常情況下的樣子

clipboard.png

這是排序完以后添加子節(jié)點的樣子,標記處沒有自動展開

clipboard.png

這是添加子節(jié)點的代碼

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中包含了剛才新加的結節(jié),而沒有展開的話,你可以嘗試在添加結點的state后,再設置expandedKeys。
如:

this.setState({treeData}, () => this.setState({expandedKeys}));
2017年8月2日 02:42