vue.js - 在计算属性中使用 vuex getter
问题描述
我正在从组件 1 向组件 2 发送道具。如果调用组件 2,则设置开始和结束时间。组件 2 中的计算属性正在访问我的 vuex 存储中的一些 getter。在这家商店里,我打电话给其他一些吸气剂。这一切都有效。
问题是我对解决方案不满意。vuex 存储中的 getter 总是必须过滤相同的东西,例如当我getAllBookingsForBookingNumber
从getStartTime
and调用 getter 时getEndTime
。为此,必须首先过滤所有法院。我想你看到了问题...
有没有更有效的方法来做到这一点?
组件 1:
<app-book-info v-bind:courtId="selectedCourtId"
v-bind:slotId="selectedSlotId">
</app-book-info>´
组件 2:
<template>..{{ getStartTime }}...</template>
props: {
courtId: {
type: Number,
default: 1,
},
slotId: {
type: Number,
default: 1
}
},
computed: {
getStartTime() {
return this.$store.getters.getStartTime(this.courtId, this.slotId);
},
getEndTime() {
return this.$store.getters.getEndTime(this.courtId, this.slotId);
}
store.js
getters: {
getStartTime: (state, getters) => (courtId, slotId) => {
return getters.getAllBookingsForBookingNumber(courtId, slotId)[0].time;
},
getEndTime: (state, getters) => (courtId, slotId) => {
let allBookings = getters.getAllBookingsForBookingNumber(courtId, slotId);
let length = allBookings.length;
return allBookings[length - 1].time;
},
getBookingNumber: (state, getters) => (courtId, slotId) => {
return getters.getCourt(courtId)[0].slots.filter(slot => slot.id === slotId)
[0].bookingNumber;
},
getAllBookingsForBookingNumber: (state, getters) => (courtId, slotId) => {
return getters.getCourt(courtId)[0].slots.filter(slot => slot.bookingNumber ===
getters.getBookingNumber(courtId, slotId));
}
}
解决方案
推荐阅读
- excel - Excel - 迭代计算收敛问题/无限循环
- cors - tensorflow_model_server 访问控制允许来源
- firebase - Firebase:获取上次用户令牌刷新的时间戳?
- visual-studio-2012 - 在 CLI/C++ 中不调用派生方法
- javascript - 无法在 Contact Form 7 Plugin 上停止带有锚标记的表单提交
- c# - 无法得到我想要的字符串?
- hadoop - shell脚本中beeline命令的返回码
- vba - 强制性数据输入框
- java - 在单元测试期间找到资源文本文件,但在从 Netbeans 运行程序时未找到
- wordpress - 无法连接到本地 wordpress 服务器