我可以从Vuex存储的一个mutation中调用commit吗?

11 浏览
0 Comments

我可以从Vuex存储的一个mutation中调用commit吗?

我有一个vuex存储,如下所示:

import spreeApi from '../../gateways/spree-api'

// 初始状态

const state = {

products: [],

categories: []

}

// 突变

const mutations = {

SET_PRODUCTS: (state, response) => {

state.products = response.data.products

commit('SET_CATEGORIES')

},

SET_CATEGORIES: (state) => {

state.categories = state.products.map(function(product) { return product.category})

}

}

const actions = {

FETCH_PRODUCTS: (state, filters) => {

return spreeApi.get('products').then(response => state.commit('SET_PRODUCTS', response))

}

}

export default {

state,

mutations,

actions

}

我想从mutation: SET_PRODUCTS调用mutation: SET_CATEGORIES,但是这给了我一个错误:

projectFilter.js:22 Uncaught (in promise) ReferenceError: commit is not defined(…)

应该如何正确实现这样的调用?我尝试了store.commit和this.commit,但这些也会产生类似的错误。

0