【发布时间】:2021-02-10 06:09:10
【问题描述】:
我正在使用 nuxt + vuex 构建一个简单的应用程序。提交/调度时,我经常收到错误“未知操作/突变类型:name”。我的突变和动作也不会显示在 vue devtools 中。另一方面,getter 和状态显示应该是这样的。
商店/products.js:
import getProducts from "~/api/products";
export const state = () => ({
all: [{ isAvailable: false }, { isAvailable: true }],
});
export const getters = {
available(state) {
return state.all.filter((p) => p.isAvailable);
},
};
export const actions = {
async fetchProducts(context) {
const response = await getProducts(true);
const products = await response.json();
context.commit("setProducts", products);
},
};
export const mutations = {
setProducts(state, products) {
state.products = products;
},
};
页面/产品/index.vue
<template>
<div class="container"></div>
</template>
<script>
export default {
async created() {
await this.$store.dispatch("fetchProducts");
},
};
</script>
<style lang="scss" scoped></style>
我的尝试
- 通过箭头函数编写如下操作/突变
export const actions = {
fetchProducts: async (context) => {
const response = await getProducts(true);
const products = await response.json();
context.commit("setProducts", products);
},
};
-
在 index.js 中编写动作/突变
-
从docs 复制的示例。状态有效,突变无效。
上述所有要点均无效。有什么想法吗?
【问题讨论】:
标签: javascript vue.js nuxt.js vuex