Propriété non définie '$primevue' accessible lors du rendu
P粉476547076
2023-08-25 16:17:16
<p><strong>Cas et questions</strong></p>
<p>Je travaille sur un projet privé utilisant <code>Vue.js</code> et j'ai rencontré l'erreur suivante lorsque j'ai essayé d'utiliser <code>FileUpload</ de <code>PrimeVue</code> ; code>Se produit lorsque le composant : </p>
<pre class="brush:php;toolbar:false;">[Vue warn] : la propriété '$primevue' a été accédée lors du rendu, mais la propriété n'est pas définie sur l'instance. ≪/pré>
<p>Essayer d'utiliser <code>FileUpload</code>
<pre class="lang-html Prettyprint-override"><code><template>
<FileUpload name="demo[]" url="" @upload="onUpload" :multiple="true" :maxFileSize="1000000">
<modèle #vide>
<p>Faites glisser et déposez les fichiers ici pour les télécharger. </p>
</modèle>
</FileUpload>
</modèle>
</code></pre>
<p>L'erreur ne se produit que lorsque j'essaie d'utiliser <code>FileUpload</code>, si je le supprime, le composant fonctionne correctement. <code>FileUpload</code> et <code>PrimeVue</code> sont tous deux importés dans <code>main.js</code>
<pre class="lang-js Prettyprint-override"><code> importer {createApp} depuis 'vue'
importer le routeur depuis "./router" ;
importer un magasin depuis "./store" ;
importer PrimeVue depuis « primevue/config » ;
importer des PrimeIcons depuis "primevue/config" ;
importer l'application depuis "./App" ;
const app = createApp(App);
app.use(
routeur,
PrimeVue,
Icônes principales,
magasin
)
importer 'primevue/resources/primevue.min.css'
importer 'primeflex/primeflex.css'
importer 'primeicons/primeicons.css'
importer 'primevue/resources/themes/bootstrap4-dark-purple/theme.css'
importer la carte depuis « primevue/card » ;
importer la barre de menus depuis "primevue/menubar" ;
importer FileUpload depuis "primevue/fileupload" ;
app.component('Carte', Carte)
app.component('Barre de menus', Barre de menus)
app.component('FileUpload', FileUpload)
app.mount('#app')
</code></pre>
<p><strong>Ce que j'ai essayé</strong></p>
<p>J'ai recherché ce problème, mais la seule correspondance exacte pour cette erreur était un ancien problème fermé sur GitHub concernant le composant <code>Calendar</code> : numéro 808.Ce problème est dû à des modifications importantes apportées à la nouvelle API <code>PrimeVue</code>. Cela ne devrait pas être mon cas puisqu'il a été introduit dans la V3.1 et que j'utilise la V3.7. </p>
<p>Si la version est à l'origine du problème, j'ai testé différentes versions de <code>PrimeVue</code>, telles que 3.1, 3.2, 3.3, mais l'erreur existe toujours. Par conséquent, les dépendances réelles sont toujours à jour : </p>
<pre class="brush:php;toolbar:false;">"primevue" : "^3.7.0"</pre>
<p>Peut-être qu'une solution existe déjà sur SO ou Google, mais soit mon anglais est trop mauvais pour comprendre, soit je ne connais pas suffisamment <code>Vue.js</code> </p>
<p>Merci d'avance ! </p>
Vous n'utilisez pas correctement
app.use()
:app.use()
n'accepte que deux paramètres :De plus,
PrimeIcons
n'est pas un plugin, il ne doit donc pas être transmis àPrimeIcons
不是一个插件,所以不应该传递给app.use()
.Solution
Passez chaque plugin individuellement à
app.use()
: