當按下ENTER鍵時,我使用了一段如下所示的代碼來觸發點擊事件:<q-tab-panel name="option1" @keyup.enter.native="$refs.button.click()">... <q-btn ref="button" @click="function()" />...</q-tab-panel>標簽屬于Quasar Framework 的組件。這段代碼不久前還可以工作,但現在需要進行此更改才能工作:<q-tab-panel name="option1" @keyup.enter.native="$refs.button.$el.click()">也就是說,現在使用引用會$refs.button.click()在按下ENTER時產生錯誤:[Vue 警告]:v-on 處理程序中的錯誤:“TypeError:無法讀取未定義的屬性‘defaultPrevented’”為什么它以前有效,為什么現在無效?我看到有人提到它與 Vue 的版本有關,或者引用正在組件中使用而不是原生 DOM 元素的事實。請參閱是否可以使用 Vue.js 觸發事件?. 我也看到了Vue - 何時以及為什么使用 $el,它在它工作之前沒有回答為什么現在它沒有。Vue 文檔說明了以下內容$el:Vue 實例正在管理的根 DOM 元素。這是有道理的,但在不需要之前也沒有解釋為什么。就我而言,錯誤發生在 Vue 2.6.10。
為什么在 Vue 中使用 $refs 時有時需要 $el?
一只甜甜圈
2021-12-02 17:00:29