当组件具有自定义构造函数时,Vue存储未定义

时间:2019-03-28 14:39:38

标签: typescript vue.js vuex

当我尝试在我的vue组件中包含一个自定义构造函数来访问其他功能中的vuex存储时,出现运行时错误。创建组件时,存储区未定义。

我怀疑通过添加自定义构造函数,可以在初始化商店之前创建组件。我可以通过将另一个组件导入到相应的组件中来解决此问题,我猜这是在商店初始化后查询创建的。

export default class myComponent extends Vue {
    myVal: myType[] = this.$store.getters.getVal;

    constructor(){
        //call Vue constructor
        super();
        //do Stuff
    } 

}

使用此设置,我得到了错误。 无法读取未定义的属性“状态”

如果我包含其他组件,那么它会以某种方式起作用。

import anotherComponent from "./AnotherComponent.vue";

@Component({
    components: {
        anotherComponent
    }
})

export default class myComponent extends Vue {
...
}

当我在没有自定义构造函数的情况下进行设置时,它也可以工作。

我想了解如何使用构造函数创建组件,以及如何在同一组件中访问存储而不必导入一些不需要的其他依赖项。我想我缺少了一些关键的东西,但是不幸的是我无法弄清楚。尽管到目前为止我仍然非常喜欢Vue + Typescript,但它似乎并不是一个受欢迎的组合。

很高兴为此提供任何输入。

0 个答案:

没有答案