@change при выборе передает аргумент «событие», который не имеет свойства

#javascript #vue.js #vue-router #bootstrap-vue

#javascript #vue.js #vue-маршрутизатор #bootstrap-vue

Вопрос:

Я работаю над проектом с bootstrap-vue и vue-router. Я хочу получить доступ к event.target при @change, но я получаю только $event, который имеет только выбранное значение и не имеет никаких свойств. Я думал, что $event — это не одно значение, а объект, который имеет некоторые свойства, такие как target и т.д., Но я ошибаюсь?

Вот фрагмент:

     <b-form-select plain :options="options" class="text-nowrap" @change="test($event)"></b-form-select>
  
 export default {
 ...
  methods: {
    test: function(event) {
      console.log(JSON.stringify(event)) // -> selected option value is shown
      console.log(JSON.stringify(event.target)) // -> shows "Cannot read property 'target' of undefined"
    }
  }
}
  

Комментарии:

1.Это ожидается, потому что компонент выдает change событие с выбранным значением: this.$emit('change', this.localValue) github.com/bootstrap-vue/bootstrap-vue/blob /…

Ответ №1:

Вы можете попробовать использовать собственный прослушиватель событий в компоненте:

 <b-form-select plain :options="options" class="text-nowrap" 
   @change.native="test"></b-form-select>
  

Комментарии:

1. Это сработало отлично, и вы сэкономили мне много времени… Большое вам спасибо!