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

鍍金池/ 問(wèn)答/HTML/ this.$nextTick為什么沒(méi)生效?

this.$nextTick為什么沒(méi)生效?

在mounted中打印console.log(this.$refs.vuetree),無(wú)論是否在this.$nextTick回調(diào)函數(shù)中都可以被打印,

clipboard.png

clipboard.png

但是this.$refs.vuetree.setCurrentKey(100)不執(zhí)行,在回調(diào)函數(shù)中也不執(zhí)行,debugger后發(fā)現(xiàn)dom確實(shí)沒(méi)有渲染,而且也不走this.$nextTick回調(diào),有大神知道是什么原因嗎。。。。。。。
補(bǔ)充一下,,用click的話(huà)是可以實(shí)現(xiàn)的。。有圖:

clipboard.png

clipboard.png

跪謝。。。

回答
編輯回答
礙你眼
  1. 搞清 mounted 里執(zhí)行的函數(shù)的執(zhí)行時(shí)間;
  2. this.$nextTick 里沒(méi)調(diào)用可能是 dom 沒(méi)渲染完;不過(guò)官網(wǎng)也說(shuō)不能保證渲染完會(huì)觸發(fā)。
2017年7月22日 08:50
編輯回答
陪她鬧

clipboard.png

我懷疑是this變了。改箭頭函數(shù)試試

2017年3月15日 03:20
編輯回答
毀與悔

你試著把$nextTick變成setTimeout試一下

setTimeout(() => {
  this.$refs.vuetree.setCurrentKey(100)
}, 20)

如果20不行,就變成200,2000。

2018年4月13日 19:48
編輯回答
離觴

還是解釋一下吧
瀏覽器為了 性能, console.log 并不是 同步的, 它在那一刻 來(lái)說(shuō) 拿的只是 對(duì)象的引用
也就是說(shuō) 當(dāng)時(shí) 組件對(duì)象 在你打印的那一刻是 不一定被創(chuàng)建的,在打印出來(lái)時(shí)候 不知道已經(jīng) 過(guò)了多久,所以可以打印出組件對(duì)象
console.log(JSON.parse(JSON.string(vueTree))) 才是正確的
至于解法,樓上的 setTimeOut 可以做到,遞歸 在 nextTick 中 判斷 vueTree是否存在進(jìn)行操作 也可以

2018年3月18日 21:19
編輯回答
你好胸

這個(gè)鍋this.$nextTick不背,是this.$refs.vuetree.setCurrentKey(100)這段代碼有問(wèn)題,你應(yīng)該是用了Element.ui應(yīng)該查一下this.$refs.vuetree.setCurrentKey(100)無(wú)效的原因

2018年7月18日 19:34