【问题标题】:How to use vuex namespaced getters with arguments?如何使用带有参数的 vuex 命名空间的 getter?
【发布时间】:2018-01-23 11:13:32
【问题描述】:

我在使用 vuex 时遇到问题。

我在命名空间模块中有吸气剂,当我传递一些参数时,我无法弄清楚如何使用 Ii 获取数据。

this.$store.getters.feeders.getFeedersById(id)

在映射器中。

...mapGetters({
   feeders: ['feeders/getFeedersById'](this.id)

像这个getter这样的错误不是一个函数。我还应该做什么?

【问题讨论】:

  • 你有没有在GitHub官方页面上看到过这个问题:github.com/vuejs/vuex/issues/688
  • 编辑后的功能仍然无法使用
  • 现在工作 :D 谢谢! :P
  • 那么,最后的编辑是使用命名空间的吗?也许有人会遇到同样的问题,并且能够看到他/她应该解决的问题;)

标签: javascript vuejs2 getter vuex


【解决方案1】:
feedersById(state) {
    return rowId => {
        if (state.feedersArray.hasOwnProperty(rowId)) {
            return state.feedersArray[rowId].map(id => state.feeders[id]);
        }

    }
},

feedersId() {
  if (this.rowData) {
   return this.$store.getters['feeders/feedersById'](this.rowData.ac_id);
  }
}

好吧,我有一些错误,现在它可以正常工作了。谢谢!! :)

【讨论】:

    【解决方案2】:

    你也可以像这样声明一个getter函数:

    feedersById: (state) => rowID => {
      if (state.feedersArray.hasOwnProperty(rowId)) {
        return state.feedersArray[rowId].map(id => state.feeders[id]);
      }
    }
    

    【讨论】:

      【解决方案3】:

      更简单的方法是使用名称间隔的 getter:

      computed(){
          ...mapGetters('feeders', ['getFeedersById'])
      }

      【讨论】:

        猜你喜欢
        • 2020-06-27
        • 1970-01-01
        • 2018-05-07
        • 2021-11-05
        • 1970-01-01
        • 2017-12-21
        • 2018-04-20
        • 2017-11-18
        • 2019-10-16
        相关资源
        最近更新 更多