使用ApiPlatform创建一个项目并使用VueJs code generator生成一些代码后,我无法分派一些操作...这是示例:
主存储文件
export default new Vuex.Store({
modules: {
...
producto,
...
}
})
主要产品商店文件
export default {
namespaced: true,
modules: {
list, //here is the action I want to use
create,
update,
show,
del
}
}
主要产品/列表存储文件
import * as actions from './actions'
import * as getters from './getters'
import mutations from './mutations'
export default {
namespaced: true,
state: {
error: '',
isLoading: false,
items: [],
view: []
},
actions,
getters,
mutations
}
动作文件
const getItems = ({ commit }, page = '/productos') => {
commit(types.TOGGLE_LOADING)
fetch(page)
.then(response => response.json())
.then((data) => {
commit(types.TOGGLE_LOADING)
commit(types.SET_ITEMS, data['hydra:member'])
commit(types.SET_VIEW, data['hydra:view'])
})
.catch((e) => {
commit(types.TOGGLE_LOADING)
commit(types.SET_ERROR, e.message)
})
}
export default getItems
在一个组件中,我映射了producto商店中的商品的吸气剂,并且得到了一个空数组(按预期)。但是当我打电话给this.$store.dispatch('producto/list/getItems')
时,vuex会抛出错误,因为没有这样的getItems操作。
我不知道吸气剂为什么起作用,但动作却不起作用。
有提示吗?我需要调用该操作才能填充producto商店中的items数组。
预先感谢
答案 0 :(得分:0)
我认为您可能在主要商店和产品商店都需要namespaced: true
export default new Vuex.Store({
namespaced: true,
modules: {
...
producto,
...
}
})
因为this.$store.dispatch('producto/list/getItems')
中实际上有两个命名空间。