typescript - 如何在 vuex-module-decorators 中使用 MutationAction?

标签 typescript vuex

我正在尝试使用 https://championswimmer.in/vuex-module-decorators 中的 vuex-module-decorators .
假设我的模块状态有一个 Prop dir这是一个字典:{[key: string]: string}我可以使用 @MutationAction更新该字典的元素?下面的代码不正确,但希望能理解我的意思。

export default class Module extends VuexModule {
  dir: {[key: string]: string}

  @MutationAction(???)
  updateDir(keyValue) {
    return keyValue // ???
  }
}

是否有一些关于如何使用的文档 @MutationAction ,它需要什么参数以及它提交的实际突变是什么?

最佳答案

这是你应该做的 -

export default class Module extends VuexModule {
  dir: {[key: string]: string}

  @MutationAction(['dir'])
  async updateDir(keyValue) {
    const currDir = this.dir

    // do any async work (network req) here
    currDir['myKey'] = keyValue

    return ( { dir: currDir } )
  }
}

但是,如果您真的不需要任何异步工作。
export default class Module extends VuexModule {
  dir: {[key: string]: string}

  @Mutation
  async updateDir(keyValue) {
    this.dir.myKey = keyValue
  }
}

附言我是vuex-module-decorators的作者

关于typescript - 如何在 vuex-module-decorators 中使用 MutationAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55730545/

相关文章:

javascript - 使用此关键字的 typescript

javascript - Angular 6 : date disapear on refresh

vue.js - 如何在vue组件中使用vuex?

firebase - vuexfire firestoreAction,与 arg 绑定(bind)

vue.js - 如何解决nuxt.js中的最大调用堆栈大小超出错误

asp.net-mvc - Angular 2 中的组件是什么

typescript - 投不投

typescript - []' is missing the following properties from type ' Promise<Cats[]>' : then, catch, [Symbol.toStringTag], 最后是 ts(2739)

javascript - Vuejs - vuex 计算属性,DOM 不更新

vue.js - Vuex 访问来自 store 的模块状态