Как правильно добавить геттер в модуль Vuex? - PullRequest
0 голосов
/ 17 января 2019

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

Это мой модуль. customer.js

export default {
    namespaced: true,

    state: {
        login: false,
    },

    getters: {
        isLoggedIn: (state) => {
            console.log(state);
            state.login;
        }
    },

    mutations: {
        set_login: (state, login) => {
            state.login = login;
        },

        set_orders: (state, orders) => {
            state.orders = orders;
        },

    },

    actions: {
        newsletter_subscribe: (context, email) => {
            //- TODO 
        },
    }
}

У меня есть регистрация через функцию registerModule.

import Customer from './customer';
store.registerModule('customer', Customer, {
    preserveState: true
});

Всякий раз, когда у меня открыты инструменты разработчика, он просто предупреждает меня об этом. Uncaught ReferenceError: состояние не определено в isLoggedIn (customer.js: 11) at wrappedGetter (vuex.esm.js: 734)

Я что-то не так делаю со своим добытчиком?

Я только заметил, что вызыватель вызывается с открытыми инструментами Vue Dev, когда я пытался поместить оповещение в получателе, чтобы увидеть, что еще может сработать без передачи состояния.

1 Ответ

0 голосов
/ 18 января 2019

Мне удалось решить эту проблему, предоставив моему магазину пустое состояние!

const store = new Vuex.Store({
    state: {}
});

И регистрация модулей как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...