记录:封装的字典utils,在全局使用情况在pinia显示未初始化

70 阅读1分钟

项目场景:

vue3+ts+vite+pinia全局组件中使用的utils中使用了pinia


问题描述

pinia提示未初始化

image.png


原因分析:

import 语句通常用于在模块的顶层引入其他模块或库。它们不是异步执行的,并且在模块的代码执行之前就已经被处理。导致pinia提示未初始化


解决方案:

个人解决方案(应该还有其他方案,欢迎留言):

将import语句

import { getDictData } from '@/utils/get-dict'

更改为动态引入,例如在onMounted或者nextTick中进行引入,由于我的组件是弹窗,所以是在open方法中进行的引入,打开后才会引入:

const openModal = (id: string) => {
  open.value = true
  import('@/utils/get-dict').then((res) => {
    options.value = res.getDictArray('mark_alarm_level')
  })
}

如有其他解决方案,希望可以留言,祝君工作顺利!