【发布时间】:2019-10-28 07:01:17
【问题描述】:
我在使用 vuex 时遇到了很多问题。在没有明显原因的情况下,不会找到 Getter、动作和突变。在下面的示例中,正在识别并执行 fetchFacility,但 addFacility 会抛出 [vuex] 未知操作类型:addFacility: (来自 store.ts)
//...
actions: {
addFaciltiy: async function (context, fac: CFacility) {
await axios.post('/db/facilities', fac)
},
fetchFacilities: async function (context, actions) {
axios.get('/db/facilities').then((response) => response.data.forEach((element: CFacility) => {
context.commit('addFacility', element);
}));
}
//...
(来自 vue 组件)
import Vue from "vue";
import { CFacility } from "./model";
import { mapGetters, mapActions } from "vuex";
export default Vue.extend({
//...
methods: mapActions(["fetchFacilities", "addFacility"]),
//...
created() {
this.fetchFacilities("a");
this.addFacility(
new CFacility(//..)
);
}}
我正在使用自动生成的 store.ts。我已经阅读了无数关于我不使用模块及其名称空间的人的帖子。我尝试了动作的箭头符号,多次重写动作并通过调度和 mapActions 访问它们。
【问题讨论】:
-
您对
addFaciltiy的定义有误,请注意Faciltiy -
根据previous comment 和OP's confirmation 标记以将其关闭为由于错字而偏离主题。
标签: typescript vue.js vuex