Vue.js - Почему мой дочерний компонент не может получить доступ к хранилищу магазина как свойству? - PullRequest
0 голосов
/ 25 октября 2019

Я определил геттер в своем магазине, и я пытаюсь получить к нему доступ в своих дочерних компонентах, но я могу получить к нему доступ только как метод ...

Я прочитал в документе, мы могли получить к нему доступ каксвойство, но когда я это делаю, он возвращает мне сигнатуру функции-получателя, вот мой код: const store = {state: {storage}, getters: {username: (state, getters) => {return 'tmp«;}}}

Мой дочерний компонент:

export default {
    data() {
        return {
            username: this.initialUsername
        }
    },
    methods: {
        ...mapMutations([
            'login'
        ]),
        onLogin(e) {
            this.login(this.username);
        }
    },
    computed: {
        ...mapGetters({
            initialUsername: 'username'
        })
    },
    created() {
        console.log(this.username)
    }
}

Что я получу в консоли:

ƒ username(state, getters) {
      return 'tmp';
}

Есть идеи почему?

Спасибо;)

1 Ответ

0 голосов
/ 25 октября 2019

Хорошо, я понял, почему это не сработало, лол, я просто не создал экземпляр хранилища vuex, а просто обычный объект, содержащий мое состояние и получатели ...:

export default {
    state: {
        storage
    },
    getters: {
        username: (state, getters) => {
            return state.storage.username;
        }
    },
    mutations: {
        [LOGIN]: (state, username) => {
            state.storage.username = username;
        },
        [LOGOUT]: state => {
            state.storage.logout();
        }
    }
}

Извинитедрузья, это был первый раз, когда я использовал vuex '-'

...