Tree: delete current node after it removed (#14604)

pull/15022/head
Jeff Wen 2019-04-22 17:38:08 +08:00 committed by hetech
parent 1967cd2b9e
commit 6ae9f0838f
2 changed files with 7 additions and 0 deletions

View File

@ -91,7 +91,11 @@ export default class TreeStore {
remove(data) { remove(data) {
const node = this.getNode(data); const node = this.getNode(data);
if (node && node.parent) { if (node && node.parent) {
if (node === this.currentNode) {
this.currentNode = null;
}
node.parent.removeChild(node); node.parent.removeChild(node);
} }
} }

View File

@ -494,10 +494,13 @@ describe('Tree', () => {
it('remove', (done) => { it('remove', (done) => {
vm = getTreeVm(':props="defaultProps" node-key="id"'); vm = getTreeVm(':props="defaultProps" node-key="id"');
const tree = vm.$children[0]; const tree = vm.$children[0];
tree.setCurrentKey(1);
expect(tree.getCurrentNode().id).to.equal(1);
tree.remove(1); tree.remove(1);
vm.$nextTick(() => { vm.$nextTick(() => {
expect(vm.data[0].id).to.equal(2); expect(vm.data[0].id).to.equal(2);
expect(tree.getNode(1)).to.equal(null); expect(tree.getNode(1)).to.equal(null);
expect(tree.getCurrentNode()).to.equal(null);
done(); done();
}); });
}); });