parent
8e37cd89f9
commit
65311fb0fb
|
@ -21,6 +21,16 @@ import {
|
||||||
* other props can pass with context for future refactor.
|
* other props can pass with context for future refactor.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
function getWatch (keys = []) {
|
||||||
|
const watch = {}
|
||||||
|
keys.forEach(k => {
|
||||||
|
watch[k] = function () {
|
||||||
|
this.needSyncKeys[k] = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return watch
|
||||||
|
}
|
||||||
|
|
||||||
const Tree = {
|
const Tree = {
|
||||||
name: 'Tree',
|
name: 'Tree',
|
||||||
mixins: [BaseMixin],
|
mixins: [BaseMixin],
|
||||||
|
@ -91,6 +101,7 @@ const Tree = {
|
||||||
}),
|
}),
|
||||||
|
|
||||||
data () {
|
data () {
|
||||||
|
this.needSyncKeys = {}
|
||||||
const state = {
|
const state = {
|
||||||
_posEntities: {},
|
_posEntities: {},
|
||||||
_keyEntities: {},
|
_keyEntities: {},
|
||||||
|
@ -124,8 +135,10 @@ const Tree = {
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
|
...getWatch(['treeData', 'children', 'expandedKeys', 'autoExpandParent', 'selectedKeys', 'checkedKeys', 'loadedKeys']),
|
||||||
__propsSymbol__ () {
|
__propsSymbol__ () {
|
||||||
this.setState(this.getDerivedStateFromProps(getOptionProps(this), this.$data))
|
this.setState(this.getDerivedStateFromProps(getOptionProps(this), this.$data))
|
||||||
|
this.needSyncKeys = {}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -135,9 +148,9 @@ const Tree = {
|
||||||
const newState = {
|
const newState = {
|
||||||
_prevProps: { ...props },
|
_prevProps: { ...props },
|
||||||
}
|
}
|
||||||
|
const self = this
|
||||||
function needSync (name) {
|
function needSync (name) {
|
||||||
return (!_prevProps && name in props) || (_prevProps && _prevProps[name] !== props[name])
|
return (!_prevProps && name in props) || (_prevProps && self.needSyncKeys[name])
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================== Tree Node ==================
|
// ================== Tree Node ==================
|
||||||
|
|
Loading…
Reference in New Issue