Событие между компонентами vuejs / laravel - PullRequest
0 голосов
/ 18 апреля 2020

Есть идеи, почему мой обработчик событий не перехватывает значение из select hastag?

Это мои компоненты Уведомления

export default {

      props: ['selected'],


      data: function() {

        return {

          message: 'Lorem ipsum dolor sit amet',

          timeago: ' à 3 horas atás',

          hastags:[

            '#Advogado',

            '#ReformulaçãoPositiva',

            '#RetTesdt'

          ]

        };

      },

      created () {

        alert("Here")

        $eventBus.$on('teste', this.selected)

      }


    }

Это мои компоненты Hastags

    export default {

      data: function() {

        return {

          hastags:[

            '#Advogado',

            '#EnviodeDocumentação',

            '#Upselling',

            '#ReformulaçãoPositiva',

            '#RetTesdt'

          ]

        };

      },

      methods : {

        randomNumber : function() {

          return 'h' + (Math.floor(Math.random() * 4) + 1)  ;

        },

          selectHastag: function (hastag) {

            this.selectedHastag = hastag

            eventBus.$emit('teste', this.selectedHastag);

        }
}

Это мое root приложение. js

Vue.component('notifications', require('./components/Notifications.vue').default);
Vue.component('hastag', require('./components/Hastag.vue').default);
Vue.component('option-button', require('./components/OptionButton.vue').default);

window.eventBus = new Vue();

const app = new Vue({

    el: '#app'

});

есть идеи, как реализовать лучшие практики?

в этом случае это будет связь между дочерними компонентами.

Некоторая помощь в реализации, большое спасибо.

И ошибка, которую я улавливаю: app. js: 84610 [Vue warn]: Ошибка в обработчике события для "teste": " Ошибка типа: невозможно прочитать свойство 'apply' из неопределенного "

(найдено в)

1 Ответ

0 голосов
/ 18 апреля 2020
  1. В строке
$eventBus.$on('teste', this.selected)

вместо этого. Выбранный должен быть обработчик как минимум с функцией стрелки:

$eventBus.$on('teste', e => this.selected = e)
Не пытайтесь менять реквизиты, которые передаются из родительского компонента. Если вы хотите sh изменить значение реквизита, вам нужно создать событие с новым значением, а родительский компонент должен перехватить это событие и изменить значение реквизита на новое (переданное вместе с событием).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...