如何从 Vuex 的另一家商店调用 getter?

Posted

技术标签:

【中文标题】如何从 Vuex 的另一家商店调用 getter?【英文标题】:How do I call a getter from another store in Vuex? 【发布时间】:2019-01-07 07:07:08 【问题描述】:

我有vuex一个商店abc.js

import Vue from 'vue';

const state = 
  recordType: null
;

const getters = 

  recordType: state => state.recordType,

;
.... other code

我还有其他vuex 商店xyz.js

import  API  from '@/api';
import Vue from 'vue';

const state = 
  messages: null
;

const getters = 
  messages: state => state.messages || [],
;

const actions = 
  async openRecord( dispatch, rootState, commit, state , record) 

    // api data
    const response = await API.post('api/openrecord/', 
      recordUid: record.recordUid,

      //**** HELP !!! HERE ****//
      recordType: // *** HERE I need to get the recordType getter from abc.js

    );

  

;

所以在xyz.js 商店我需要从abc.js 获取recordType 值

【问题讨论】:

Vuex: Access State From Another Module的可能重复 【参考方案1】:

您可以使用 rootGetters 属性以及指定命名空间:

rootGetters['abc/recordType']

在你的情况下,它给出:

const actions = 
  async openRecord( dispatch, rootGetters, commit, state , record) 
    // api data
    const response = await API.post('api/openrecord/', 
      recordUid: record.recordUid,
      recordType: rootGetters['abc/recordType']
    );
  
;

【讨论】:

以上是关于如何从 Vuex 的另一家商店调用 getter?的主要内容,如果未能解决你的问题,请参考以下文章

监听getter的Vuex计算属性不更新

如何将我的 App.vue 页面添加到 Vuex 商店?

如何在 Nuxt 中从另一个访问一个 Vuex 状态?

Vuex 商店自动更新

Vuex:从动作中调用 getter

如何在Vuex的getter函数中调用getter函数