Почему не работает focus()?

По нажатию на кнопку, текст должен редактироваться. Соответственно, я сделал input, убирал атрибут disabled, но не хватает автоматического фокуса на инпут и выделения текста.
Вот код:
methods: {
 editBoardName: function() {
                 this.isDisabled = false;
                 this.$refs.headerBoardName.focus();
  },

editBoardName запускается по клику на кнопку, v-model у input нету, здесь всё работает по отдельности, фокус наводится, если this.isDisabled = false изначально. Если же вместе, то disabled снимается, а вот фокус не работает. Я пробовал помещать this.$refs.headerBoardName.focus(); в отдельную функцию, все равно не помогает. С select() та же самая история, 1 в 1.
  • Вопрос задан
  • 691 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Потому что input всё ещё disabled в тот момент, когда вы дёргаете focus. Используйте nextTick:

this.isDisabled = false;
this.$nextTick(() => this.$refs.headerBoardName.focus());
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы