【发布时间】:2021-07-21 21:08:06
【问题描述】:
创建了一个名为 room.module.js 的新服务 .js
在我的 Vue 视图中,我在表单提交上有以下事件:
submit: function(e) {
e.preventDefault();
var name = this.$refs.name.value;
var capacity = this.$refs.places.value;
// dummy delay
setTimeout(() => {
// send update request
this.$store.dispatch(CREATE_ROOM, {
"name": name,
"places": capacity
});
}, 2000);
还有我的服务room.module.js:
// action types
import ApiService from "@/core/services/api.service";
import JwtService from "@/core/services/jwt.service";
export const CREATE_ROOM = "createNewRoom";
// mutation types
export const SET_ROOM_INFO = "setRoomInfo";
const state = {
room_info: {
name: "Room 1",
places: 10,
status: 1
}
};
const getters = {
currentRoomInfo(state) {
return state.room_info;
}
};
const actions = {
[CREATE_ROOM](context, payload) {
if (JwtService.getToken()) {
ApiService.setHeader();
ApiService.put("/room/create", payload).then(({ data }) => {
context.commit(SET_ROOM_INFO, payload);
return data;
});
}
}
};
const mutations = {
[SET_ROOM_INFO](state, room_info) {
state.room_info = room_info;
}
};
export default {
state,
actions,
mutations,
getters
};
但是当我提交表单时,出现以下错误:
[vuex] unknown action type: createNewRoom
我知道我错过了一些东西,但不知道是什么。
有任何想法吗?谢谢!
【问题讨论】:
-
从给定的代码中看不到
room.module.js已添加到 Vuex 商店。是加的吗?有代码吗? -
啊当然!这就是问题所在!非常感谢@Kunukn