Primevue对话框模式不能在vue 3中显示?

ny6fqffe  于 2023-05-01  发布在  Vue.js
关注(0)|答案(2)|浏览(190)

我使用Vue@3。2.47和primevue@3。27.0
main.js

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import PrimeVue from 'primevue/config';
import './assets/main.css'

// primevue-css
import "primevue/resources/themes/lara-light-indigo/theme.css";
import "primevue/resources/primevue.min.css";
import 'primeicons/primeicons.css';
import '/node_modules/primeflex/primeflex.css';

const app = createApp(App)
app.use(router, PrimeVue)
app.mount('#app')

Home.vue

<script setup>
    import { ref } from "vue";

    // components
    import Button from 'primevue/button';
    import Dialog from 'primevue/dialog';

    // function
    const visible = ref(false);
</script>

<template>
    <section class="about">
        <div class="wrapper">
            <h1>This is an home page</h1>
            <br/>
            <div class="btn-wrapper">
                <Button label="Show" icon="pi pi-external-link" @click="visible = true" />
            </div>
        </div>
    </section>
    <Dialog v-model:visible="visible" modal header="Header" :style="{ width: '50vw' }">
        <p>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
            Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
        </p>
    </Dialog>
</template>

当我点击按钮显示对话框时,得到错误消息“Uncaught(in promise)TypeError:无法访问属性“config”,this.$primevue未定义”
我一直在找它,它说它来自节点模块,但我已经重新安装了很多次,结果仍然是一样的。有办法吗?如果节点模块有问题,但按钮仍然呈现。

nbnkbykc

nbnkbykc1#

我发现问题了!

app.use(router, PrimeVue)

应该是

app.use(router).use(PrimeVue)

use()期望plugin作为第一个参数,而可选的plugin选项作为第二个参数。
https://vuejs.org/api/application.html#app-use

bd1hkmkf

bd1hkmkf2#

代码是OK和工作。检查您的构建器和节点设置。
下面是working playground和你的代码。
我只删除了vue路由器,因为它是不使用和一对夫妇的css文件

import './assets/main.css'
import '/node_modules/primeflex/primeflex.css';

相关问题