我必须从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个部门?如果可能,我只想传递部门的名称。