Как получить доступ к вложенным действиям в модулях магазина vuex? - PullRequest
0 голосов
/ 19 ноября 2018

После создания проекта с ApiPlatform и генерации кода с помощью генератора кода VueJs Мне не удалось отправить некоторые действия ... Вот пример:

файл основного магазина

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

файл основного продукта 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.

Заранее спасибо

1 Ответ

0 голосов
/ 21 ноября 2018

Я думаю, вам может понадобиться namespaced: true в основном магазине, а также в магазине producto

export default new Vuex.Store({
  namespaced: true,
  modules: {
    ...
    producto,
    ...
  }
})

, потому что this.$store.dispatch('producto/list/getItems') фактически содержит два пространства имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...