Vuex:在getter中引用特定的状态数据

时间:2018-02-02 18:23:59

标签: vue.js vuex

我必须从12个特定部门提取数据。当我的Vue商店安装完成后,我会通过12个不同的ajax调用启动一些操作来加载这些命令。 (这些调用是针对不同的API端点和服务器)。

一旦我收到回复,我就会把它们交给州政府。所以在我的状态下,我将以下数据设置为数组:

state: {
  sportsOrders: [],
  photographicOrders: []
  //And more..
},

现在我需要根据它们是否迟到,正在制作等来过滤这些特定的订单。所以我有一个设置如下的getter:

getters: {
  getDepartmentLateOrders: (state) => (department) => {
    let resultArray = []
    state.department.forEach(function(order, index) {
      let now = new Date()
      let orderShipDate = new Date(order.ExpectedShipDate)
      let diff = date.getDateDiff(orderShipDate, now)
      if(diff < 0) {
        resultArray.push(order)
      }
    })
    return resultArray
  },
}

然后当我需要在组件中使用它时......

return this.$store.getters.getDepartmentLateOrders(this.department+'Orders')

//for example it will end up passing 'sportsOrders' to the getter

但是,当我这样做时,Vue不使用sportsOrders的状态数据,所以我知道我没有正确访问它。它说: vue.runtime.esm.js?ff9b:574 [Vue warn]: Error in render: "TypeError: Cannot read property 'forEach' of undefined"

如果我对我的吸气剂进行硬编码,那么它可以正常工作(但我不想为12个部门做这个)..

state.sportsOrders.forEach(function(order, index) {
...
}

我如何设置它以便我可以使用这一个getter并让它适用于所有12个部门?如果可能,我只想传递部门的名称。

0 个答案:

没有答案