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 模块错误地将 actions
、mutations
和 getters
设置为函数。只有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
}
我试图在 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 模块错误地将 actions
、mutations
和 getters
设置为函数。只有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
}