Я использовал фрагмент кода, подобный следующему, чтобы вызвать событие click при нажатии клавиши 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 warn]: ошибка в обработчике v-on: «Ошибка типа: невозможно прочитать свойство defaultPrevented из undefined»
Почему это работало раньше ипочему это не работает сейчас? Я видел, как кто-то упоминал, что это связано с версией Vue или с тем, что ссылка используется в компоненте, а не в элементе DOM. См. Можно ли запускать события, используя Vue.js? . Я также видел Vue - когда и почему используется $ el , который не отвечает, почему раньше он работал, а теперь нет.
В документации Vue говорится о $el
:
Корневой элемент DOM, которым управляет экземпляр Vue.
Это имеет смысл, но не объясняет, почему до того, как он не понадобился. В моем случае ошибка происходит с Vue 2.6.10.