如何将吸气剂正确添加到Vuex模块?

时间:2019-01-17 19:57:54

标签: vuejs2 vuex

每当我注册一个模块时,我都试图创建一个Vuex模块,尽管没有什么调用我刚刚创建的getter,但我得到的状态是不确定的。我可以正确调用操作,没有错误。

这是我的模块。 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
});

只要我打开开发人员工具,它就会提醒我。 未捕获的ReferenceError:状态未定义     在isLoggedIn(customer.js:11)     在wrappedGetter(vuex.esm.js:734)

我的吸气剂有什么问题吗?

当我尝试在getter中发出警报以查看在不传递状态的情况下还有什么可能触发的情况时,我只注意到在打开Vue Dev工具时调用了getter。

1 个答案:

答案 0 :(得分:0)

我设法通过为商店提供空白状态来解决它!

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

并正常注册模块。