我有一些用户需要保存他们的空闲时间,我使用的是全日历,我需要在他们点击某一天的时候检查他们是否已经有活动了(如果他们有空闲时间,不需要放一次以上)。我使用的是Full Calendar,我需要在他们点击某一天的时候,检查他们是否已经有了一个事件(如果他们是可用的一个他们,不需要把它多放一次)。我使用VueJs,我有所有的事件在商店里。所以,我试着这样做。
handleSelect(arg) {
let index = this.$store.getters.EVENTS.findIndex((_event) => _event.start == arg.start);
if (index == -1) {
this.$store.dispatch("ADD_EVENT", {
id: new Date().getTime(),
title: this.title,
start: arg.start,
end: arg.end,
allDay: arg.allDay,
});
}
},
如果我控制台记录_event.start和arg.start,两者都是一样的 但我得到的索引总是-1。有人知道为什么吗?
解决:event.start是一个对象,所以我需要getTime来比较日期。所以我的新代码是这样的。
handleSelect(arg) {
let index = this.$store.getters.EVENTS.find(
_event =>
_event.start.getTime() == arg.start.getTime() &&
_event.end.getTime() == arg.end.getTime()
);
if (!index) {
this.$store.dispatch("ADD_EVENT", {
id: new Date().getTime(),
title: this.title,
start: arg.start,
end: arg.end,
allDay: arg.allDay
});
}
},