使用axios导入piain报Cannot access ‘useMsgStore‘ before initialization

 这个是vue-router中使用useStore的使用示例,意思是如果放在外面的话,是在pinia挂载之 前使
用,这个时候是会出错的,但是在路由拦截方法里使用的话,这个时候是可以的!

 

在方法里使用就不会报错了

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果你在使用`i18nInstance`时仍然错"Uncaught ReferenceError: Cannot access 'i18nInstance' before initialization",可能是因为你在调用`axios.interceptors`时,`i18nInstance`还未被初始化。 你可以尝试把`axios.interceptors`放在`bootstrap`函数中,确保`i18nInstance`已经被初始化后再调用`axios.interceptors`。例如: ``` async function bootstrap() { const app = createApp(App); // ... // 多语言 存储本地 setupI18n(app).then((i18n) => { i18nInstance = i18n; // 注册全局指令 setupGlobDirectives(app); // 实例挂载 app.mount("#app"); //图标组件注册到 Vue nextTick(() => { Object.keys(Icons).forEach((key) => { app.component(key, Icons[key as keyof typeof Icons]); }); }); // 在i18nInstance被初始化后再调用axios.interceptors axios.interceptors.request.use((config) => { config.headers["Accept-Language"] = i18nInstance.global.locale.value; return config; }); axios.interceptors.response.use( (response) => { // 处理响应数据 const data = response.data; // 使用i18nInstance翻译错误信息 if (data.success === false) { const errorMessage = i18nInstance.t(data.message); // 抛出错误 return Promise.reject(new Error(errorMessage)); } return response; }, (error) => { // 处理响应错误 return Promise.reject(error); } ); }); } bootstrap(); ``` 这样就可以确保`i18nInstance`已经被初始化后再调用`axios.interceptors`,避免"Uncaught ReferenceError: Cannot access 'i18nInstance' before initialization"的错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值