其實這3個講的是一個問題,先說下問題,我在watch里設置一個監聽,當彈窗打開時,自動添加樹形的默認選中項,
但奇怪的是this.$refs為undefined,自然setCheckedKeys無法使用,這個時候就要用到$nextTick,不懂的朋友先去百度下,
大致來說就是一個虛擬dom變成真實之后的一個回調,只有在回調里面才能獲取到$refs,問題自然就解決了
watch: {
dialogVisible (val) {
if (val) {
this.setDefaultChecked() // 如果為true。那么調用設置樹形默認值的方法
}
}
},
methods: {
setDefaultChecked () {
this.$nextTick(() => {
this.$refs.Tree.setCheckedKeys(this.CheckedArr) // CheckedArr 一個選中的數組element Ui的東西,關鍵是看$nextTick的用法
})
},
}
總結一下,以后this.$refs為undefined的時候,不妨考慮下是不是真實dom還沒有形成,可以用 this.$nextTick包裹一下試試,這也是 this.$nextTick我目前使用到的地方