WebDev2030
@WebDev2030
Битриксоид до мозга и костей

Почему VUE не подключает компонент внутри другого компоненте?

Всем привет. Задача крайне простая. Я создал компонент: Popup.vue
<template>
  <div class="popup" v-if="visibility">
    <div class="popup__overlay" @click="$emit('close-popup')"></div>
    <div class="popup__inner">
      <div class="popup__title-bar">
        <span class="popup__title">{{ title }}</span>
        <button class="popup__close-btn" @click="$emit('close-popup')"></button>
      </div>
      <div class="popup__content">
        <slot></slot>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  name: "Popup",

  props: {
    title: {
      type: String,
      required: true
    },
    visibility: {
      type: Boolean,
      required: true
    }
  }
}
</script>

<style scoped>

</style>


И второй компонент ConfirmedPopup.vue, который подключает первый:
<template>
    <Popup :title="title" :visibility="visibility">
      <span>{{ question }}</span>
      <button @click="confirmedCallback">Да</button>
      <button @click="$emit('close-popup')">Нет</button>
    </Popup>
</template>

<script>
import Popup from './Popup.vue';

export default {
  name: "Popup",

  components: {
    Popup
  },

  props: {
    title: {
      type: String,
      required: true
    },
    visibility: {
      type: Boolean,
      required: true
    },
    question: {
      type: String,
      required: true,
      default: ''
    },
    confirmedCallback: {
      type: Function,
      required: true
    },
  },

  methods: {

  }
}
</script>

<style scoped>

</style>


Подключаю второй компонент:
<ConfirmPopup :title="'Удаление товара'" :question="('Вы действительно хотите удалить товар #' + item.ID + '')" :visibility=deleteFormVisibility  :confirmed-callback="deleteItem"/>


По получаю ошибку:
Maximum call stack size exceeded
Буд-то я подключаю компоненты рекурсивно, но это не так.

Почему такое может быть?
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
Имена разные дайте им для начала
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы