如何在Vuex的getter函数中调用getter函数

Posted

技术标签:

【中文标题】如何在Vuex的getter函数中调用getter函数【英文标题】:How to call getter function inside getter function in Vuex 【发布时间】:2018-02-09 18:59:55 【问题描述】:
import Vue from 'vue'
import Vuex from 'vuex'
import  createModule  from 'vuex-toast'
import 'vuex-toast/dist/vuex-toast.css'
Vue.use(Vuex)

const store = new Vuex.Store(
  modules: 
    toast: createModule(
      dismissInterval: 80000
    ),
    app: 
      state: 
        raps: [],
      ,
      getters: 
        getRaps () 
          return store.state.app.raps
        ,
        getRapsFiltered (state, getters)  //error happens in this func
          return getters.getRaps.filter(state.filterFunc)
        
      
    
  
)

export default store

我收到错误消息“未捕获的 TypeError:null 不是函数”。 如何在getter中调用getter函数? 这段代码似乎有什么问题?

【问题讨论】:

state.filterFunc 没有定义吗? 谢谢,它是空的 【参考方案1】:

您可以使用传递给 getter 函数的 getters 参数调用 getter

const getters = 
    calculateItemTax: () => item => 
        return item.item_tax
    ,
    //pass getters as an argument and use it inside getter 
    orderTax: (state, getters) => 
        state.items.forEach(item => 
            //use getters argument to access getters functions
            taxAmount += getters.calculateItemTax(item)
        )
        return taxAmount
   ,

【讨论】:

以上是关于如何在Vuex的getter函数中调用getter函数的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Vuex 的另一家商店调用 getter?

Vuex:从动作中调用 getter

如何使用来自另一个模块的模块内的 getter 进行 Vuex 状态

vuex的使用

如何使用另一个模块中的模块中的getter进行Vuex状态

测试调用 Getter 和 Mutations 的 Vuex 动作