Я хотел бы изменить baseUrl по умолчанию в моих действиях vuex.
Так что в моей конфигурации у меня есть
const axiosInstance = axios.create({
baseURL: appdetails.apiurl
})
axiosInstance.interceptors .....
export {axiosInstance}
Так что в моем квазар-магазине я просто звоню
import { axiosInstance } from '../../../plugins/axios'
function getAverages (context) {
return new Promise((resolve, reject) => {
return axiosInstance.get("average-items")
.then((res) => {
......//other stuff
})
})
}
В магазине вышеперечисленное работает
Но сейчас я нахожусь в ситуации, когда мне бы хотелось изменить baseUrl из импортированного axiosInstance. Как мне продолжить.
Итак, я попытался.В действии vuex у меня есть
function getAppValues (context, { baseUrl, apiurl}) {
let fetchreq = axiosInstance.get("test");
if (baseUrl){
fetchreq = axiosInstance.get({ url: apiurl, baseURL: baseUrl });
}
return new Promise((resolve, reject) => {
return fetchreq
.then((res) => {
console.log("res is", res);
resolve(true)
},(err)=>{
console.log("err is e", err);
})
})
}
Так что в моем компоненте я звоню
this.$store.dispatch("app/getAppValues",{baseUrl:'https://test.com',apiurl:'test'});
Но теперь я получаю сообщение об ошибке
res is TypeError: request.url.indexOf is not a function
at eval
Также, когда я не передаюbaseUrl вроде this.$store.dispatch("app/getAppValues")
, но получаю ошибку
caught (in promise) TypeError: Cannot read property 'baseUrl' of undefined. Even when the request is an error it still resolves as a response
Как мне решить эту проблему и в то же время проверить, передан ли baseUrl в моем запросе действия хранилища