haoxiaolan 2023-12-17 20:46 采纳率: 34.7%
浏览 4
已结题

vuex报错 state未定义

vuex文件

const user = {
  state: () => ({
      userInfo: {

      }
    }

  ),
  mutations: {
    increment(v) {
      this.userInfo = v;
    }
  },
  actions: {
    increment(context,value) {
      context.commit("increment",value);
    }
  }
};
export default user;

import { createStore } from 'vuex'
import user from './user'
// 创建一个新的 store 实例
const store = createStore({
  state() {},
  mutations: {},
  actions: {},
  modules: {
    user
  }
})

export default store

request.js文件


import { ElMessage } from "element-plus";
import { useStore } from "vuex";
const store = useStore();

// 创建一个axios实例
const service = axios.create({
  // 基地址
  baseURL: import.meta.env.VITE_APP_BASE_URL,
  //超时时间 单位毫秒
  timeout: 10000
});
service.defaults.withCredentials = true;


// 请求拦截器 请求成功执行第一个,失败第二个
service.interceptors.request.use(
  (config) => {
    //获取token
    config.headers.token=store.state.user.userInfo.token || "";
    return config;
  },
  (error) => {
    console.log("请求失败");
    return Promise.reject(error);
  }
);

img

在vue组件中可以这样使用,但是js文件中这样用就报错了

img

如何解决呀?

  • 写回答

1条回答 默认 最新

  • 小果运维 2023-12-17 22:53
    关注

    Vue 组件中可以访问到 Vuex 中的 state,但是将 Vuex 相关的代码放入独立的 JavaScript 文件中可能会导致无法直接访问到 Vuex 的 state。这是因为在独立的 JavaScript 文件中,默认情况下无法直接访问到 Vue 组件实例的内容,包括 Vuex 中的状态。

    一种解决方法是将需要使用 Vuex state 的 JavaScript 代码放入 Vue 组件内部或者将其作为 Vue 组件的一部分来使用。这样可以确保代码能够访问到 Vue 实例中的 Vuex 状态。

    如果你希望在独立的 JavaScript 文件中使用 Vuex 的状态,你需要通过其他方式获取 Vuex 的实例。例如,在你的 JavaScript 文件中导入 Vuex 的 store 实例,然后使用它来访问 Vuex 的 state。

    以下是一个示例,展示了如何在独立的 JavaScript 文件中使用 Vuex 的 state:

    在 Vue 组件中:

    img


    然后,在 JavaScript 文件中

    img


    这样,你就可以在独立的 JavaScript 文件中使用 myJavaScriptCode.accessVuexState() 方法来访问 Vuex 的 state 了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月24日
  • 已采纳回答 12月24日
  • 创建了问题 12月17日

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器