При импорте компонента отображается пустая страница с ошибкой типа: невозможно установить для свойства «компоненты» значение undefined

#javascript #vue.js #vuejs2 #vuetify.js

#javascript #vue.js #vuejs2 #vuetify.js

Вопрос:

Существует компонент Vue DisplayContent ,

 <template>
  <div></div>
</template>

<script lang="ts">
import { Vue, Component } from "vue-property-decorator";
import Home from "@/components/Home.vue";

@Component({
  components: {
    Home
  }
})
export default class DisplayContent extends Vue {}
</script>

<style scoped></style>
 

И этот Home компонент похож на,

 <template>
  <div id="content-container">
    <v-container>
      Lorem ipsum dolor sit amet consectetur adipisicing elit. Laudantium,
      voluptates. Blanditiis neque dolore adipisci? Ad temporibus dolorum nihil
      nam necessitatibus ratione, atque sint. At nostrum quos quas odit
      recusandae sunt.
    </v-container>
  </div></template
>

<script lang="ts">
import { Vue } from "vue-property-decorator";
export default class Home extends Vue {}
</script>

<style>
#content-container {
  padding-top: 3%;
}
</style>
 

Я загружаю компонент ‘Display’ внутри основного App.vue, и он отображает пустую страницу с ошибкой консоли — TypeError: Cannot set property 'components' of undefined

Интересно, что если я удаляю v-component из Home компонента, он загружается нормально без каких-либо ошибок —

 <template>
  <div id="content-container">
      Lorem ipsum dolor sit amet consectetur adipisicing elit. Laudantium,
      voluptates. Blanditiis neque dolore adipisci? Ad temporibus dolorum nihil
      nam necessitatibus ratione, atque sint. At nostrum quos quas odit
      recusandae sunt.
  </div></template
>

<script lang="ts">
import { Vue } from "vue-property-decorator";
export default class Home extends Vue {}
</script>

<style>
#content-container {
  padding-top: 3%;
}
</style>
 

Кроме того, если я скопирую Home компонент (вместе с v-container ) внутри Display компонента, он отобразит все правильно.

Почему наличие v-container внутри Home ничего не загружает и выдает ошибку?

Ответ №1:

На случай, если кто-то еще столкнется с этим, я решил это, добавив пустой декоратор @Component в Home.vue — https://github.com/vuejs/vue/issues/7804#issuecomment-702056619