【问题标题】:How to call getter function inside getter function in Vuex如何在Vuex的getter函数中调用getter函数
【发布时间】: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 没有定义吗?
  • 谢谢,它是空的

标签: vue.js getter vuex


【解决方案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
   },
}

【讨论】:

    猜你喜欢
    • 2018-02-22
    • 1970-01-01
    • 2020-06-27
    • 1970-01-01
    • 2018-05-07
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多