Vue JS доступ к объектам «родственного компонента родительского компонента» - PullRequest
0 голосов
/ 30 июня 2019

У меня есть следующая структура компонента: component structure of vue app

У компонента SideHead есть метод, в этом методе я хочу получить доступ к объектам инцидентов и вызвать на них некоторую функцию.

Короче говоря, из метода в "A" я хочу получить доступ к объектам "B" и вызвать их метод.

Я думаю, что создание события и его распространение может помочь, но я не смог подключить егоработать.Есть идеи?

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Используйте управление состоянием, например Vuex , для связи между не родительскими и дочерними компонентами.

Передача событий на $root или на шину событий ненадежна (подвержена условиям гонки) и трудна в отладке - захват событий будет «молчать». то есть вы никогда не будете проинформированы о том, что событие не было зафиксировано.

0 голосов
/ 30 июня 2019

1) Вы должны добавить тег ref для каждого компонента.<app ref="App">, <index ref="Index">, <incidents ref="Incidents">, <incident-by-prio ref="IncidentByPrio">

И вызовите его из корневого компонента A следующим образом:

this.$root.$refs.App.$refs.Index.$refs.Incidents.$refs.IncidentsByPrio.SomeMethod()

Изменить 1:

2) Излучить событие из компонента A в корне.

Компонент A

this.$root.$emit('SomeEvent', {...});

Поймать этособытие в целевом компоненте:

this.$root.$on('SomeEvent', () => {...});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...