diff --git a/packages/tree/src/model/node.js b/packages/tree/src/model/node.js index 85ffa388b..8e62a709d 100644 --- a/packages/tree/src/model/node.js +++ b/packages/tree/src/model/node.js @@ -465,6 +465,7 @@ export default class Node { this.doCreateChildren(children, defaultProps); this.updateLeafState(); + reInitChecked(this); if (callback) { callback.call(this, children); } diff --git a/test/unit/specs/tree.spec.js b/test/unit/specs/tree.spec.js index 86bef43df..a79c096e2 100644 --- a/test/unit/specs/tree.spec.js +++ b/test/unit/specs/tree.spec.js @@ -299,6 +299,36 @@ describe('Tree', () => { expect(vm.$el.querySelectorAll('.el-checkbox .is-checked').length).to.equal(1); }); + it('defaultCheckedKeys & lazy, checked children length as expected', () => { + vm = getTreeVm(':load="loadNode" :props="defaultProps" :default-checked-keys="defaultCheckedKeys" node-key="id" :default-expanded-keys="[1]" lazy show-checkbox ', { + created() { + this.defaultCheckedKeys = [2, 3]; + }, + methods: { + loadNode(node, resolve) { + if (node.level === 0) { + return resolve([{ label: 'head', id: 1} ]); + } + return resolve([ + { + label: '#1', + id: 2 + }, + { + label: '#3', + id: 3 + }, + { + label: '$4', + id: 5 + } + ]); + } + } + }); + expect(vm.$el.querySelectorAll('.el-checkbox.is-checked').length).to.equal(2); + }); + it('show checkbox', done => { vm = getTreeVm(':props="defaultProps" show-checkbox'); const tree = vm.$children[0];