Отправка событий с vue -маршрутизатора - PullRequest
0 голосов
/ 12 июля 2020

У меня есть два компонента: MyItem. vue и ChangeItem. vue. Я пытаюсь создать событие в компоненте ChangeItem. vue и перехватить его в компоненте MyItem. vue. Но не работает.

MyItem. vue

<template>
    <v-card>
        <p>Hello</p>
    </v-card>
     <v-card>
        <router-view name="areas.change" v-on:onchangeitem="test"></router-view>
     </v-card>
</template>

<script>
  export default {
    data(){
        return {
          item: [
        }
    },
    methods: {
        test: function() {
            console.log("my event")
        },
        
    },
  }
</script>

ChangeItem. vue

<template>
    <v-row align="center" justify="center" class="pa-15">
        <button @click="onClickBtnValidate">click</button>
    </v-row>
</template>

<script>
export default {
  data() {
    return {
    };
  },
  methods: {
      onClickBtnValidate: function() {
          this.$router.app.$emit('onchangeitem')
      }
  },
  
};
</script>

1 Ответ

0 голосов
/ 12 июля 2020

Прежде всего, для генерации события достаточно

this.$emit('onchangeitem')

В любом случае, почему бы вам не попробовать вызвать свой компонент ChangeItem непосредственно из компонента MyItem, я думаю, что это ваша основная проблема, если вы собираетесь попробовать это, не забудьте зарегистрировать компонент в разделе components объекта vue.

...