@Vova135798

Почему выдает vuex ошибки?

Почему vuex выдает ошибки?
[vuex] unknown mutation type: increment
TypeError: Attempting to change the getter of an unconfigurable property.


product.js:
import axios from "axios";

export default {
    state: {
        products: [],
        product: [],
        
    },
    actions: {
        async fetchProducts(ctx){
            axios.get("/api/products").then(res => {
                this.products = res.data;
            });
            ctx.commit("updateProducts", this.products);
        }
    },
    mutations: {
        updateProducts(state, products){
            state.products = products;
        },
    },
    getters: {
        allProducts(state){
            return state.products;
        },
        showProduct(state){
            return state.product;
        }
    },
}

vuex.js:
import Vue from "vue";
import Vuex from "vuex";

import product from "./modules/product";

Vue.use(Vuex);

export default new Vuex.Store({
    modules: {
        product,
    }
});

index.vue:
<template>
 <product
                v-for="product in allProducts"
                :key="product.id"
                :id="product.id"
                :title="product.title" 
                :price="product.price"
            />
</template>

<script>
    import Spin from "../components/spin.vue";
    import axios from "axios";
    import Product from "../components/Product.vue";
    import { mapGetters } from "vuex";


    export default {
        components: {
            Product,
        },
        },
        computed: mapGetters(["allProducts"]),
        async mounted() {
            this.$store.dispatch("fetchProducts");
        }
    };

</script>
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 1
В экшене this.products = res.data; - некорректно. Нужно сохранить значение из res.data в локальную переменную, а потом её передать в коммит мутации
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы