为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在导出的模块中使用 Vuex mapActions

是否可以在导出的模块中使用 Vuex mapActions

慕勒3428872 2021-06-29 08:41:42
是否可以从导入到组件中的单独模块调用 Vuex mapActions?我正在尝试标准化 vue.js Web 应用程序中的一组函数。我想将它们导入到每个组件中并传递一些值到函数操作。我正在使用 vuex 来管理状态。目前,每个组件每次加载时都会调用这些函数(完全相同)。我想将其重构为一个模块,并根据需要将其导入到每个组件中。此代码使用 mapActions 作为其功能的一部分。下面是相关的代码段:component、module、vuex actionVue 组件://the imported function callif (!this.queued){   timer.updatePage(this.pagination, this.orders);}模块代码(advance.js):import { mapActions } from 'vuex';let currentComp = {   name: 'purchase',   date: null,   start: false}const timer = {   ...mapActions(['currentComponent']),   updatePage(pagination, order) {      currentComp.name = 'nextComponent';      this.currentComponent(currentComp);   }}export default timer;Vuex 代码://in the actions section:currentComponent({        commit    }, comp) {        console.log(comp);        commit('setCurrentComponent', comp);}//in the mutations section:setCurrentComponent: (state, comp) => {        state.currentComponent = comp.name;        return state;    }当组件运行导入的函数时,我得到:vuex.esm.js?2f62:870 Uncaught TypeError: Cannot read property 'dispatch' of undefined    at Object.mappedAction [as currentComponent] (vuex.esm.js?2f62:870)    at eval (advance.js?935c:37)当我从 this.currentComponent 中删除 this 时,我得到:advance.js?935c:37 Uncaught ReferenceError: currentComponent is not defined    at eval (advance.js?935c:37)提前感谢您的任何指导。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信