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

问题描述 投票:0回答:1
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

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

vue.js getter vuex
1个回答
0
投票

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

const getters = {
    calculateItemTax: () => item => {
        return item.item_tax
    },

    orderTax: (state, getters) => {
        state.items.forEach(item => {
            taxAmount += getters.calculateItemTax(item)
        })
        return taxAmount
   },
}
© www.soinside.com 2019 - 2024. All rights reserved.