具有有效载荷的mapActions

时间:2018-11-11 12:47:18

标签: javascript vue.js vuex

我有一种不同的方法来分派动作。组件中的任何地方都没有单击处理程序,而是依赖于如下所示的事件中心:

created() {
  eventHub.$on('eventName', this.onCall)
},
methods: {
  ...mapActions([
    'dispatcher'
  ]),
  onCall() {
    this.dispatcher({
      dataA: this.dataA,
      dataB: this.dataB,
      dataC: this.dataC
    })
  }
}

因此,您可以看到onCall被调用,并且调度程序内部也被调用。我想知道是否可以使用mapActions如下所示:

created() {
  eventHub.$on('eventName', this.dispatcher)
},
methods: {
  ...mapActions({
    type: 'dispatcher',
    payload: {
      dataA: this.dataA,
      dataB: this.dataB,
      dataC: this.dataC
    }
  })
}

但是看着api,我不知道是否可以使用这样的东西。

1 个答案:

答案 0 :(得分:0)

我只能认为这是一种更好的方法:

created() {
  eventHub.$on('eventName', this.onCall)
},
methods: {
  ...mapActions([
    // if there's any other
  ]),
  onCall() {
    this.$store.dispatch('dispatcher',{
      dataA: this.dataA,
      dataB: this.dataB,
      dataC: this.dataC
    })
  }
}