Vue: обработчик событийной шины не определен - PullRequest
0 голосов
/ 27 сентября 2019

Я хочу реализовать шину событий в моем приложении vue.

Сначала я хочу сделать вызовы шины событий, чтобы начать загрузку.Тег сценария моего основного компонента, где я вызываю $on, выглядит следующим образом:

<script>
    import store from '../store.js'
    import EventBus from '../event-bus';

    import Header from './includes/Header'
    import Footer from './includes/Footer'
    import Loading from './includes/Loading'

    export default {
        data() {
            return {
                isLoading: null
            }
        },
        components: {
            Header,
            Footer,
            Loading
        },
        mounted() {
            EventBus.$on('isLoading'), function (payLoad) {
                console.log(payload)
                this.isLoading = payload
            };
        }
    }
</script>

Но я получил эту ошибку:

[Vue warn]: ошибка в обработчике событийдля "isLoading": "Ошибка типа: обработчик> неопределен"

Как это исправить?

1 Ответ

0 голосов
/ 27 сентября 2019

У вас есть две ошибки.Это должно выглядеть так:

EventBus.$on('isLoading', (payLoad) => {
  console.log(payload)
  this.isLoading = payload
});

Ошибка 1 - закрывающая ) перед запятой, приводящая к вызову $on без функции.Это то, что вызывает предупреждение.Это закрытие ) должно быть в конце, между } и ;.

Ошибка 2 использует нормальную функцию, что приводит к неверному this внутри функции.Функция со стрелкой сохранит значение this из окружающей области видимости.

Я предлагаю использовать IDE или линтер, который может решить проблемы такого рода.Ваш код был синтаксически действителен, но такого рода ошибки можно легко обнаружить с помощью подходящего инструментария.

...