vuex 未知动作类型:'auth/Signup'

vuex unknown action type: 'auth/Signup'

我试图在 vuex 中使用我的 auth 模块创建一个注册页面。我发布了一个 api 用于从模块中的操作注册。当我尝试这段代码时,它在控制台中显示“[vuex] 未知操作类型:auth/signUp”。我做错了什么吗?谁能解决这个问题?

这是我的 vuex 授权模块

// store/auth/index.jx

import auth from '@/API/API_Auth'

const state = () => ({})
const getters=()=>({})
const mutations = () => ({})

const actions = () => ({
    signUp({commit},data){

        return auth.signUp(data)
            .then(res=>{
                console.log(res)
            })
            .catch(err=>{
                console.log(err)
            })
    }
})

export default {
    namespaced: true,
    state,
    getters,
    actions,
    mutations
}

我的 vuex 商店。

//   store/index.js

import Vue from "vue";
import Vuex from "vuex"
import auth from './module/auth'

Vue.use(Vuex);
export default new Vuex.Store({
    modules: {
        auth,
    },
    state:{},
    getters:{},
    mutations:{},
    actions:{},

})

我在main.js

导入了store和router
// main.js
import store from "./store"
import router from "./router";

new Vue({
  store,
  router,
  render: (h) => h(App),
}).$mount("#app");

这是我调用操作的注册组件。

// src/component/signup.vue

<script>
export default {

  data() {
    return {
      name: "",
      telNumber: "",
    };
  },
  methods: {
    handleSubmit() {
          let name= this.name
          let telNumber= this.telNumber
        this.$store.dispatch("auth/signUp", {name,telNumber})
        .then(res=>{
          this.$router.push({path: 'otp'});
        })
        .catch(err=>{console.log(err)})
      }
    }
  }
};
</script>

您的 Vuex 模块错误地将 actionsmutationsgetters 设置为函数。只有state应该是一个函数,其余的应该是objects:

const state = () => ({}) // ✅ function
const getters = {} // ✅ object
const mutations = {} // ✅ object

const actions = { // ✅ object
    signUp({ commit }, data) {}
}

export default {
    namespaced: true,
    state,
    getters,
    actions,
    mutations
}