Итак, у меня есть компонент Commentbox, который перечисляет комментарии пользователей (Comment) во вложенной иерархии родитель-потомок с использованием рекурсии.
// Commentbox.vue (child)
<template>
<comment :comments="comments"></comment-box>
</template>
давайте предположим, что данные, переданные этому дочернему компоненту, равны
[
{ id: a, parent: c, children: [], comment: cdoisdskds ....}
{ id: b, parent: a, children: [...,...], comment: bjdskdls .... }
]
и затем в самом дочернем компоненте мы имеем структуру кода, подобную приведенной ниже:
<template>
<div v-for="(comment, index) in comments" :key="index" >
<div v-if="comment.children" @click="this.$emit('repling', somedata )" > is parent layout </div>
<div v-else >
//is child - do the parent-child check layout etc...
<comment :comment.children></comment>
</div>
</div>
<template>
Макет прекрасно работает без проблем, но проблема возникает, когда я пытаюсь передать событие от дочернего к parent.
Он работает в родительском компоненте как таковой, и я могу успешно получить событие для непосредственных потомков ...
<comment-box>
<comment @replying="dostuff"></comment>
</comment-box>
Проблема заключается в том, что я щелкаю дочерние компоненты, поскольку это повторяющийся компонент, можно было бы ожидать, что он ведет себя так же, но это не так. Событие не резонирует с родительским компонентом.
Как можно обработать этот крайний случай в vue?