#vue.js #vuejs2 #event-bus
#vue.js #vuejs2 #event-bus
Вопрос:
Я пытаюсь получить значение для ввода при поиске, но это не удается.
Здесь я отправляю значения по шине событий:
import eventBus from "../../../services/eventBus";
export default {
name: "Navbar",
data() {
return {
searchInputValue: '',
}
},
watch: {
searchInputValue(val) {
eventBus.$emit("search", val);
}
}
}
Здесь я пытаюсь получить значения:
import eventBus from "./services/eventBus";
export default {
data() {
return {
searchInputValue: null
}
},
created() {
eventBus.$on("search", data => {
console.log(data);
});
}
}
EventBus
import Vue from 'vue'
const eventBus = new Vue();
export default eventBus;
Но я получаю эту ошибку:
[Предупреждение Vue]: Ошибка в созданном перехватчике: «Ошибка типа: _services_EventBus__WEBPACK_IMPORTED_MODULE_4___default.a.$on не является функцией»
Комментарии:
1. Возможно, проблема с разрешением пути
import eventBus from "./services/eventBus"
.2. Не могли бы вы поделиться своим кодом EventBus?
3. @Hammerbot
import Vue from 'vue' const eventBus = new Vue(); export default eventBus;
4. @jom правильные пути
5. Возможно, вам следует использовать
import eventBus from "../../../services/eventBus";
в вашем компоненте listener. Можете ли вы запуститьconsole.log(eventBus)
в своем компоненте listener?
Ответ №1:
ну, я не знаю точной причины, но если вы выполняете одиночный импорт в своем eventBus.js ошибка исчезнет, что я пытаюсь сказать, сделайте это в вашем eventBus.js
import Vue from 'vue'
export default new Vue();