Доступ к состоянию модуля vuex из другого модуля - PullRequest
0 голосов
/ 13 декабря 2018

Я изучаю vuex и добиваюсь успехов, но я застрял на чем-то.У меня есть компонент Vue с магазином, содержащим несколько модулей.У меня есть места с оборудованием.Пользователь выбирает местоположение, и я сохраняю его в своем состоянии vuex в модуле местоположения.

Я пытаюсь получить доступ к местоположению из модуля оборудования, чтобы загрузить только оборудование для выбранного местоположения.

В документации сказано, что это должно работать:

actions: {
incrementIfOddOnRootSum ({ state, commit, rootState }) {
  if ((state.count + rootState.count) % 2 === 1) {
    commit('increment')
  }
}

КогдаЯ пытаюсь это сделать в моем модуле:

GET_EQUIPMENTS : async (context,payload, rootState) => {
  alert(JSON.stringify(rootState.location, null, 4));
}

Я получаю сообщение об ошибке rootState не определено.

Если я оповещаю контекст, я вижу rootGetters

{
  "getters": {},
  "state": {
    "equipments": [],
    "equipment": null
  },
  "rootGetters": {
    "locations/LOCATIONS":[
    {
       "id": 1,
       "name": "West Pico",
    }
  }
}

Но я могуНе могу понять, как получить доступ к местоположениям / местоположениям, я могу получить доступ к rootGetters, обратившись к context.rootGetters.

Любой совет?

1 Ответ

0 голосов
/ 13 декабря 2018

На основе https://vuex.vuejs.org/guide/modules.html

Вы должны обернуть state, commit, rootState в {..} для действий:

actions: {
    incrementIfOddOnRootSum({ state, commit, rootState }, yourParam) {
      if ((state.count + rootState.count + yourParam) % 2 === 1) {
        commit('increment');
      }
    }
  }
...