从 Vuex 商店全局访问 const 变量

Posted

技术标签:

【中文标题】从 Vuex 商店全局访问 const 变量【英文标题】:globally accessing const variables from a Vuex store 【发布时间】:2020-08-21 11:44:42 【问题描述】:

我有一个非常简单的 VueJS 示例,但遇到了一些问题。

我有一个名为 enums.js 的 js 文件,其中包含以下行

export const modeEnumeration =  PLAYBACK: 'playback', RECORDING: 'recording', NONE: 'none' ;

我想将 Vuex 状态下的属性的初始值设置为这些 modeEnumeration 值之一。所以这是我的 Vuex 商店。

import Vue from 'vue';
import Vuex from 'vuex';
import modeEnumeration from '../constants/enums';

Vue.use(Vuex);

export default new Vuex.Store(
  state: 
    mode: modeEnumeration.NONE,
  ,
  mutations: 
  ,
  actions: 
  ,
  modules: 
  ,
  getters: 
  ,
);

但是,我在 Vuex 商店中不断收到以下错误...

未捕获的类型错误:无法读取未定义的属性“NONE”

我错过了什么?

【问题讨论】:

【参考方案1】:

你导出了一个命名对象,所以你需要用花括号来导入它:

import  modeEnumeration  from '../constants/enums';

另一种解决方案是导出默认值:

export default  PLAYBACK: 'playback', RECORDING: 'recording', NONE: 'none' ;

【讨论】:

天哪,这么简单。谢谢!

以上是关于从 Vuex 商店全局访问 const 变量的主要内容,如果未能解决你的问题,请参考以下文章

如何从 javascript/typescript 模块文件(导入/导出)访问 Vuex 商店?

在 NUXT 中使用 vue-apollo 从 Vuex 商店访问 this.$apollo?

在函数调用中定义要由线程访问的全局 const 字符串变量

Vue/Nuxt:如何在 vuex 商店中访问 Nuxt 实例?

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

Vuex:直接访问商店或传递属性?