"getActivePinia()" was called but there was no active Pinia. Are you trying to use a store before calling "app.use(pinia)"?
我的代码是这样的,为什么会报这个错误?
import {defineStore} from "pinia";
import {computed, ComputedRef, ref} from 'vue';
export const requestStore = defineStore('request',() => {
const location : Location = window.location;
// @ts-ignore
const baseUrl : string = ref(`${location.protocol}//${location.hostname}:5173`);
// @ts-ignore
const timeout : number = ref(5000);
// @ts-ignore
const getBaseUrl : ComputedRef<string> = computed(() : string => baseUrl.value);
// @ts-ignore
const getTimeout : ComputedRef<number> = computed(() : number => timeout.value);
return {getBaseUrl,getTimeout};
});
import axios, {AxiosInstance, AxiosRequestConfig, AxiosResponse} from 'axios';
import {isNotEmptyNumber, isNotEmptyObject} from "../utils/tool.ts";
// @ts-ignore
import { show } from '../utils/message.ts';
import { requestStore } from '../stores/request.ts'
let request : AxiosInstance = axios.create({
// @ts-ignore
baseURL: requestStore().getBaseUrl.value,
// @ts-ignore
timeout: requestStore().getTimeout.value,
headers: {
'Content-type': 'application/json;charset=utf-8'
}
});
// @ts-ignore
request.interceptors.request.use((config : AxiosRequestConfig) => {
return config;
},(error : any) => {
return Promise.reject(error);
});
request.interceptors.response.use((response : AxiosResponse) => {
return response.data;
},(error : any) => {
if (isNotEmptyObject(error.response)) {
let response : AxiosResponse = error.response.data;
// @ts-ignore
let path : string = window.location.pathname;
// @ts-ignore
let code : number = response.code;
// @ts-ignore
let message : string = response.message;
if (!isNotEmptyNumber(code)) {
code = error.response.status;
}
if (code === 404) {
if (path.indexOf('/admin') !== -1) {
window.location.href = '/admin/404';
} else {
window.location.href = '/404';
}
} else if (code === 500) {
show('error','服务端产生异常,请稍后重试!');
} else {
show('error',message);
}
} else {
show('error','网络异常,请稍后重试!');
}
return Promise.reject(error);
});
export default request;
import axios, {AxiosInstance, AxiosRequestConfig, AxiosResponse} from 'axios';
import {isNotEmptyNumber, isNotEmptyObject} from "../utils/tool.ts";
// @ts-ignore
import { show } from '../utils/message.ts';
import { requestStore } from '../stores/request.ts'
let request : AxiosInstance = axios.create({
// @ts-ignore
baseURL: requestStore().getBaseUrl.value,
// @ts-ignore
timeout: requestStore().getTimeout.value,
headers: {
'Content-type': 'application/json;charset=utf-8'
}
});
// @ts-ignore
request.interceptors.request.use((config : AxiosRequestConfig) => {
return config;
},(error : any) => {
return Promise.reject(error);
});
request.interceptors.response.use((response : AxiosResponse) => {
return response.data;
},(error : any) => {
if (isNotEmptyObject(error.response)) {
let response : AxiosResponse = error.response.data;
// @ts-ignore
let path : string = window.location.pathname;
// @ts-ignore
let code : number = response.code;
// @ts-ignore
let message : string = response.message;
if (!isNotEmptyNumber(code)) {
code = error.response.status;
}
if (code === 404) {
if (path.indexOf('/admin') !== -1) {
window.location.href = '/admin/404';
} else {
window.location.href = '/404';
}
} else if (code === 500) {
show('error','服务端产生异常,请稍后重试!');
} else {
show('error',message);
}
} else {
show('error','网络异常,请稍后重试!');
}
return Promise.reject(error);
});
export default request;