Изменить базовый URL-адрес axios по умолчанию в действиях магазина vuex не удается - PullRequest
0 голосов
/ 07 февраля 2019

Я хотел бы изменить 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 в моем запросе действия хранилища

...