为什么我在App.vue类的商店中获取的getter未定义

时间:2018-05-02 17:29:52

标签: vue.js vuejs2 vuex vue-class-components

我正在使用vue,vuex和vuex-typescript构建电子应用程序。所以我使用vuex-typescript为我的商店提供以下代码:

export const dispaVuex = {
  namespaced: true,

  state: {
    dispatch: new Dispatcher(appState),
  },

  getters: {
    getFTime(state: DispatchState): boolean {
      return state.dispatch.fistTime;
    },
  },
};

const {read} = getStoreAccessors<DispatchState, RootState>("Test");

export const readFtime = read(dispaVuex.getters.getFTime);

将商店添加到我的vue实例后,我尝试在我的App.vue中访问firstTime变量,如下所示:

@Component
export default class App extends Vue {
  // fTime: boolean;
  get fTime(): boolean {
    return readFtime(this.$store);
  }
}

在查看调试器时,存储中的所有内容都已完美初始化,但我的App实例的fTime未定义。

为什么会出现这种情况?有什么东西我没有得到关于如何制作的顺序?

PS。 firstTime是Dispatcher类的成员

1 个答案:

答案 0 :(得分:0)

因此,在仔细查看vuex-typescript自述文件中给出的示例之后,我注意到在调用函数getStoreAccessors时我传递了错误的命名空间。

使用dispaVuex代替Test这样可以解决问题:

const {read} = getStoreAccessors<DispatchState, RootState>("dispaVuex");