this. $ root. $ emit не работает в Vue

1

Я хочу выпустить событие из корневого компонента и прослушать его в корневом компоненте. В дочернем компоненте child я делаю это:

this.$root.$emit('access-token', accessToken);

В корневом компоненте (верхний компонент, первый для загрузки) я делаю это (редактирование: это в методе mount()):

this.$on('access-token', this.setAccessToken);

Однако он не реагирует на это событие. Зачем?

  • 0
    Вы отметили это Vue & Vue 2, вы используете Vue 2?
  • 0
    Да, vue2, извините
Показать ещё 5 комментариев
Теги:
vuejs2

1 ответ

7

Вы не используете $root для события $on

Измените это:

this.$on('access-token', this.setAccessToken); 

за это:

this.$root.$on('access-token', this.setAccessToken);
  • 1
    Стоит упомянуть, что, по-видимому, vue не поощряет такой подход, и предлагает фиктивный компонент в качестве шины событий или vuex- vuejs.org/v2/guide/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню