You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PrimeVue的ConfirmDialog出现injection "Symbol()" not found报错如何解决

报错原因

该警告是PrimeVue的ConfirmService未正确注册导致的:confirm.require依赖Vue的注入机制获取服务实例,未注册服务时就会找不到对应的注入标识抛出该警告。

修复步骤
  • 第一步:在项目入口文件(通常为main.js/main.ts)中注册ConfirmService
import { createApp } from 'vue'
import PrimeVue from 'primevue/config'
import ConfirmationService from 'primevue/confirmationservice'
import App from './App.vue'

const app = createApp(App)
app.use(PrimeVue)
// 新增注册确认服务
app.use(ConfirmationService)
app.mount('#app')
  • 第二步:在调用确认弹窗的组件中正确获取confirm实例,组合式API写法如下:
import { useConfirm } from "primevue/useconfirm";
const confirm = useConfirm()
// 你原有写的deleteCategory方法不需要做任何修改
  • 如果你使用的是选项式API,按如下方式注入即可:
export default {
  inject: ['confirm'],
  methods: {
    deleteCategory() {
      this.confirm.require({
        // 沿用你原有的配置即可
      })
    }
  }
}
注意事项

如果完成上述操作后仍报错,检查你项目安装的PrimeVue版本是否为3.x及以上,旧版本的API调用方式存在差异。

内容的提问来源于stack exchange,提问作者Hieu Le

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:21:01