我有以下vuex配置
import listing from '@/store/modules/listing'
var store = new Vuex.Store({
modules:
{
listing: listing,
},
,列表模块代码如下所示
import Vue from 'vue'
const listing = {
namespaced: true,
state: {
listingAllItems: [],
listingSelectedItems: [],
},
mutations: {
updateListingAllItems(state, param) {
},
},
actions: {
getListingItems(context, param) {
var tempThis = this;
return new Promise((resolve, reject) => {
var url = 'http://WS/';
Vue.http.get(url).then(response => {
tempThis.commit('updateListingAllItems', response.data);
}).catch(error => reject(error));
})
},
},
getters: {}
}
export default listing
调用 this.commit('updateListingAllItems',response.data)我收到 [vuex]未知突变类型:updateListingAllItems 。
命名空间的getter和操作将接收本地化的getter, 派遣和提交。换句话说,您可以使用模块资产 无需在同一模块中写入前缀
为什么我收到错误消息?
答案 0 :(得分:0)
操作方法this
内部是商店。您的代码在商店实例上提交了一个非前缀的变异。
如果你改变了
tempThis.commit('updateListingAllItems', response.data);
到
context.commit('updateListingAllItems', response.data);
你会得到你所期望的。