Vue.js - отправляет событие от дочернего элемента к родительскому. - PullRequest
0 голосов
/ 18 сентября 2018

Я не могу $emit событие от дочернего компонента до его родителя. Я могу успешно отправить событие, но не получить его в родительском.

Results.vue ( Ребенок ):

<a href="#" v-on:click="sendResultValues"></a>

// 

methods: {
    sendResultValues: function () {
        this.$emit('send-result-values', 'carrier');
    }
},

Когда я нажимаю <a>, я вижу с помощью Vue DevTools, что событие $emit запускается:

enter image description here Тем не менее, ничего не получено в console.log, как мой код ниже (родитель):

Input.vue ( Родитель ):

<search-results></search-results> //Results.vue component
<search-popover v-on:send-result-values="showResultData"></search-popover>
 //
methods: {
    showResultData: function () {
        console.log("Data received from child: ")
    }
 },

Ответы [ 2 ]

0 голосов
/ 18 сентября 2018

есть еще способ решить эту проблему.

  1. Вы можете использовать vuex.js
  2. , вы можете использовать методы $ emit и $ on

например

vm.$emit('test', 'hi'); 
vm.$on('test', function (msg) { console.log(msg) }); // => "hi"
0 голосов
/ 18 сентября 2018

Вам нужно слушать событие на компоненте search-results, а не на search-popover.

Input.vue (родительский):

<search-results v-on:send-result-values="showResultData"></search-results>
<search-popover></search-popover>

methods: {
    showResultData: function () {
        console.log("Data received from child: ")
    }
 },
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...