首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >vuex__WEBPACK_IMPORTED_MODULE_1__.Store.commit vuex“Vue3 :TypeError不是一个函数”

vuex__WEBPACK_IMPORTED_MODULE_1__.Store.commit vuex“Vue3 :TypeError不是一个函数”
EN

Stack Overflow用户
提问于 2021-01-12 15:43:01
回答 1查看 423关注 0票数 2

因此,我试图通过axios获取静态json数据,并将其提交到vuex中的“项目”状态,但我得到了错误消息"Store.commit不是一个函数“。

我是不是遗漏了什么?

请记住,我是在Vue3的vuex中执行此操作的。

代码语言:javascript
运行
复制
//store.js
import axios from 'axios';
import { createStore, Store } from 'vuex'


export default createStore({
  state: {
    projects:[]
  },
  mutations: {
    SET_PROJECTS: (state, projects) => {
      state.projects = projects;
    }
  },
  actions: {
  },
  modules: {
  }
});

const getPrjectData = () => {

  axios
  .get('static json URL here')
  .then(response => {
    Store.commit('SET_PROJECTS', response.data.projects);
  })
  .catch(err => console.log(err));   
}

getPrjectData();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-12 15:59:20

将函数转换为操作:

代码语言:javascript
运行
复制
actions: {
  getPrjectData({ commit }) {
    axios
    .get('static json URL here')
    .then(response => {
      commit('SET_PROJECTS', response.data.projects);
    })
    .catch(err => console.log(err));   
  }
}

调用操作,如下所示:

选项API

代码语言:javascript
运行
复制
this.$store.dispatch('getPrjectData');

组合API

代码语言:javascript
运行
复制
import { useStore } from 'vuex'
export default {
  setup() {
    const store = useStore();
    store.dispatch('getPrjectData');
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65679771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档