首页 > 解决方案 > this$store 函数未定义

问题描述

我正在尝试使用 vuex 的商店进行一些 API 调用,但是在安装 vuex 后,将商店导入我的文件并遵循其他堆栈溢出答案,例如确保安装了 vuex,如果我使用“Vuex.Store”导出我的商店文件和等,但我的 loadCalls 功能仍然无法正常工作。

这是我得到的错误:

this.$store.loadCalls is not a function

这是我的函数以及我尝试调用它的方式,它在我的 store.js 文件的 ACTIONS 部分中声明。

loadCalls() {
   axios
        .get("/some/calls")
        .then(res => {
          console.log(res)
        });
},

我尝试在beforeMount()我的组件加载时使用它:

beforeMount(){
    this.$store.loadCalls();
}

我在这里做错了什么?

标签: axiosvuexstore

解决方案


如果您定义了这样的操作:

actions: {
  loadCalls() {
    // ...
  }
}

然后你会这样称呼它:

this.$store.dispatch('loadCalls');

操作不会直接公开,您可以使用dispatch.

https://vuex.vuejs.org/guide/actions.html#dispatching-actions


推荐阅读