Vue / Vuex. Свойства магазина Vuex недоступны из моего компонента - PullRequest
0 голосов
/ 11 января 2020

У меня есть приложение vue и компонент. Компонент зарегистрирован и рендеринг просто отлично. Я просто импортировал Vuex, чтобы помочь с управлением государством. Я использую машинопись и vue -класс-декоратор для лучшей безопасности типов.

Мое приложение выглядит так: .ts

// load vuex stores
let store = require('./store/store.ts');

// register components here...
Vue.component('my-component', require('./components/MyComponent.vue'));

// initialize vue applications here...
const app = new Vue({
    el: '#app',
    store
});

Я могу console.log магазина и увидеть, что магазин действительно требуется правильно.

Вот мой магазин: .ts

import Vuex from 'vuex'
import Vue from 'vue'

Vue.use(Vuex);

export default new Vuex.Store({
    state: {
        active: false,
    },
    getters: {
        isActive: state => state.active
    }
});

Вот мой компонент: .ts

import { Vue, Component, Prop } from 'vue-property-decorator'
import axios from 'axios'

@Component
export default class MyComponent extends Vue {

    @Prop(String) route?: string

    resent: boolean = false

    loading: boolean = false



    // constructor
    mounted (): void {
        if (!this.route) {
            throw new Error("The route property is missing");
        }
    }

    get myActiveState (this :Vue): any {
        console.log(this.$store);
        return this.$store.getters.isActive;
    }
}

Неважно, что я пытаюсь Я не могу получить доступ к государственной собственности магазинов. Я могу консольный журнал this.$store, и я действительно получаю правильное хранилище, то же самое, если я устанавливаю точку останова и проверяю, я могу получить прямой доступ к активному свойству, но если я пытаюсь и консольный журнал this.store.state.active или this.store.getters.isActive, то я получить сообщение об ошибке.

[Vue warn]: Error in render: "TypeError: Cannot read property 'isActive' of undefined"

Я могу установить точку останова и проверить консоль, чтобы дважды проверить содержимое каждого свойства. Все выглядит хорошо. НО я не могу получить доступ к свойству с $store.state.active Мне нужно сделать $store.default.state.active.

Что здесь происходит? Почему я не могу получить доступ к состоянию, когда оно закодировано? Кроме того, попытка кода this.$store.default.state.active выдает ошибку сборки property does not exist on type Store<any>

...