无法在组件中调度 Vuex 模块的操作

Posted

技术标签:

【中文标题】无法在组件中调度 Vuex 模块的操作【英文标题】:Could not dispatch actions of Vuex's module in component 【发布时间】:2019-10-18 04:27:09 【问题描述】:

我是 Vue 和 Vuex 的新手。我有一个关于这个框架的问题,希望能得到一些帮助。

这是我的主要商店代码:

export default new Vuex.Store(
    modules: 
        loader: LoaderStore
    
)

export default store;

这是我的加载器商店代码:

export default new Vuex.Store(
    namespaced: true,
    state: () => (
        shown: false,
    ),
    mutations: 
        showLoader: state => state.shown = true,
        hideLoader: state => state.shown = false,
    ,
    actions: 
        showLoader: ( commit ) => commit('showLoader'),
        hideLoader: ( commit ) => commit('hideLoader'),
    
)

最后是我的按钮组件:

<button @click="submit">Show Loader</button>

<script>
export default 
    methods: 
        submit() 
            this.$store.dispatch('loader/showLoader');
        
    

</script>

如我所愿,当单击按钮时,将显示引导加载程序。但它没有,并且控制台日志显示此错误:

[vuex] 未知动作类型:loader/showLoader

我也在这个网站上搜索了很多主题,但仍然找不到解决方法。我决定在这里发布新问题。请帮助您找到一些问题。

非常感谢,对不起我的英语!

【问题讨论】:

【参考方案1】:

加载器模块的代码应该导出默认值。所以用export default 替换export default new Vuex.Store()

更多:https://vuex.vuejs.org/guide/modules.html

【讨论】:

以上是关于无法在组件中调度 Vuex 模块的操作的主要内容,如果未能解决你的问题,请参考以下文章

无法在模块之外访问 Vuex getter

无法读取 vuex 中 Store._callee 处未定义的属性“getProduct”(操作名称)

尝试从 vuejs 组件调度操作时,vuex 未知操作类型

刷新页面后Vuex无法读取属性

Vue/Vuex 在创建的钩子中等待异步调度

调度操作后获取 vuex 存储状态