注册模块中的vuex未知突变类型

Posted

技术标签:

【中文标题】注册模块中的vuex未知突变类型【英文标题】:vuex unknown mutation type in registered module 【发布时间】:2018-02-06 14:29:24 【问题描述】:

我只是想在 vuex 中创建动态注册模块,但它似乎不起作用。 这是我的商店文件

import Vuex from 'vuex'
import descriptionModule from './module/descriptionModule';
const state: stateModule, getters, mutations = descriptionModule;

const createStore = () => 
  return new Vuex.Store(
    state: 
      descriptions: [],
    ,
    mutations: 
      addDescriptions(state, payload)
        state.descriptions.push(state.descriptions.length + 1);
        createStore().registerModule(`descriptionModule$payload`, 
          state: stateModule,
          getters,
          mutations,
          namespaced: true // making our module reusable
        );
      
    
  )
;

export default createStore

这是我要注册的自定义模块

const state = () => 
  return description: ''
;
const getters = 
  description: (state) => state.description
;
const mutations = 
  updateDescription(state, payloads)
    state.description = payloads;
  
;
export default 
  state,getters,mutations

然后这是我的自定义方法,它将调用 addDescriptions 突变并从 registerModule 提交 updateDescription

beforeMount()
  console.log("hahahaha");
  this.$store.commit('addDescriptions', this.id);
,
... more code ....
methods: 
      onType(editor, content)
        console.log(this.$store.state.a);
        console.log(this.$store.state);
        console.log(this.$store);
        this.$store.commit(`descriptionModule$this.id/updateDescription`, content, root: true)
      
    

每次调用onType,我都会在浏览器中收到错误unknown mutation type: descriptionModuleeditor1/updateDescription

目前我正在关注这个解决方案link,但它对我不起作用:(

谁能解决这个问题,抱歉,英语不好

【问题讨论】:

【参考方案1】:

通过beforeMount() 上的组件/页面调用$store.registerModule()

beforeMount()
      this.$store.registerModule(`descriptionModule$this.id`, 
        state: stateModule,
        getters,
        mutations,
        namespaced: true // making our module reusable
      );
    ,

【讨论】:

以上是关于注册模块中的vuex未知突变类型的主要内容,如果未能解决你的问题,请参考以下文章

尝试从 Vuex 模块调度操作不起作用。 [vuex] 未知动作类型

vuex 未知本地变异类型:updateValue,全局类型:app/updateValue。突变不起作用

使用 Vuex 的未知突变类型

VUEX 没有找到突变,但它被定义了

从 vuex 模块中监听动作/突变

Vuex |如何在模块操作中提交全局突变?