Maison > Questions et réponses > le corps du texte
J'ai reçu l'erreur comme indiqué dans le titre. J'ai lu un peu sur cette erreur et la plupart des réponses indiquent qu'elle est liée au référencement d'une propriété de méthode/données inexistante, ou est causée par une orthographe stupide. Dans le bloc de code ci-dessous, le problème ne se produit que lorsque je référence correctement la méthode componentNames
数据属性。我注意到,只有当我在 componentNames
上使用 Object.keys()
existante (utilisée pour obtenir le nom du composant).
<template> <v-container fluid> <v-row dense> <v-col v-for="(comp, n) in componentNames" :key="n" :cols="n === 0 ? 2 : 10" > <v-card> <component :is="comp"></component> </v-card> </v-col> </v-row> </v-container> </template> <script> import A from '../views/A.vue'; import B from '../views/B.vue'; export default { name: 'Project', data() { return { //componentNames: ['A', 'B'] // when I use this line of code then it works perfectly componentNames: Object.keys(this.$options.components) // however, this line doesn't work } }, components: { A, B }, }; </script>
Erreur :
[Vue warn] : La propriété ou la méthode 'componentNames' n'est pas définie instance mais référencé lors du rendu.
P粉0856897072024-02-18 19:27:15
Essayez d'utiliser l'initialisation d'un tableau vide componentNames
,然后在创建的钩子内将 Object.keys($options.components)
attribuez-lui :
data() { return { componentNames: [] } }, created(){ this.componentNames=Object.keys(this.$options.components) }, components: { A, B },