Vuex mapActions:mapper参数必须是Array或Object



当我尝试使用;getProducts"方法通过mapActions我得到了";this.getProducts"不是函数。

基本上,我从我的product.js中获取操作。所以我不知道为什么会出现错误。

我希望你能帮我处理一下

我的组件ProductList.vue:

<script>
import ProductCard from "./ProductCard.vue";
import { mapState, mapActions } from "vuex";
export default {
components: {
ProductCard
},
computed: {
//state.modulname.state.js(products state)
...mapState("product" ["products"])
},
mounted() {
this.getProducts();
},
methods: {
...mapActions("product"["getProducts"])  
}
};
</script>
<style>
</style>

我的产品.js文件:

import store from "../../store/store";
import Product from "../../apis/Product";
const state = {
product: null,
products: [],
};
const mutations = {
SET_PRODUCT(state, product) {
state.product = product;
},
SET_PRODUCTS(state, products) {
state.products = products;
},
};
const actions = {
getProduct({ commit }, productId) {
Product.show(productId).then((response) => {
commit("SET_PRODUCT", response.data);
});
},
getProducts({ commit }) {
Product.all().then((response) => {
commit("SET_PRODUCTS", response.data);
});
},
};
const getters = {

getProductID() {
return (id) => state.products.filter((product) => product.id === id);
},
};
export default {
namespaced: true, 
store,
state,
mutations,
actions,
getters,
};

试试这个:

...mapActions([
'product/getProducts'
])

最新更新