【问题标题】:Vuex mapActions: mapper parameter must be either an Array or an ObjectVuex mapActions:映射器参数必须是数组或对象
【发布时间】:2020-07-17 07:31:06
【问题描述】:

当我尝试通过 mapActions 使用“getProducts”方法时,我发现“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>

我的 product.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,
};

【问题讨论】:

标签: vue.js vuex


【解决方案1】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 2016-05-02
    • 1970-01-01
    • 2013-03-16
    • 2018-11-18
    • 2021-10-19
    • 2019-05-10
    • 2020-05-28
    • 2021-01-14
    相关资源
    最近更新 更多