封装axios时,创建axios时用到vuex,getter is not defined?-灵析社区

无敌铃铃后

我想根据vuex里的iswx的值来动态改变baseURL,但是显示getters is not defined.请问是什么原因![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/84c6627b8d065f6806f4a74375b16a5e.png) import axios from 'axios' import store from '@/store' import router from '@/router' // create an axios instance const service = axios.create({ //baseURL: process.env.VUE_APP_BASE_API, baseURL: store.getters.iswx ? process.env.VUE_APP_BASE_API1 : process.env.VUE_APP_BASE_API2, timeout: 20000 // request timeout })

阅读量:18

点赞量:0

问AI
创建 axios 的时候 vuex 还没有创建,所以 "getters is not defined"。注意,所有我们 import 进来的 JS 都会先执行一遍,所以你的代码里,"service = axios.create()" 其实很早就执行了。 解决的思路一般有两个: 1. 能否提前 store 的初始化,或者延后 axios 的初始化 2. 我猜 "iswx" 是判断执行环境是否是微信?类似这种全局常量建议不要放在状态管理工具里,直接用一个全局对象存下来就好