【问题标题】:Array of dates is empty when trying to access it from picker options尝试从选择器选项访问日期数组时为空
【发布时间】:2020-08-25 04:31:45
【问题描述】:

我有一个从服务器填充的日期数组,它定义了要在日期选择器上禁用的日期

 getStaffAvailability(){
            let x = this;
            this.$http.get(this.weeklyAvailabilityUrl + "GetAvailableDaysForStaff/" + this.entity.staffId)
                .then(function (event: any) {
                    x.staffAvailableDays = event.body;
                });
        }

在此方法运行后,我可以在 vue 开发工具上清楚地看到该数组按预期填充了值... https://i.stack.imgur.com/9cUpx.png

但是,当我尝试访问数组时,在 datepicker 选项的 disableddates 方法中,它是空的并且其中没有值。我不明白这是为什么。

 export default class StaffAllocation extends Mixins<BaseCrudMixin>(BaseCrudMixin) {
        staffAvailableDays: Date[];
        datePickerOptions: any;

        @Prop(Number) eventId!: number;

        constructor() {
            this.staffAvailableDays = [];
            this.datePickerOptions = {
                disabledDate: (currentDate: Date) => {
                    return (this.staffAvailableDays.findIndex(item => { return item.getTime() == currentDate.getTime() })) == -1;
                }
            };
}

【问题讨论】:

    标签: typescript vue.js element-ui


    【解决方案1】:

    根据您的屏幕截图,this.staffAvailableDaysstring 的数组,而不是 Date 的数组。这意味着item.getTime() 会抛出异常。

    您可以尝试在分配日期之前解析日期:

    getStaffAvailability(){
      let x = this;
      this.$http.get(this.weeklyAvailabilityUrl + "GetAvailableDaysForStaff/" + this.entity.staffId)
      .then(function (event: any) {
        x.staffAvailableDays = event.body.map(function (d) {
          return new Date(Date.parse(d));
        });
      });
    }
    

    【讨论】:

    • 您好我试过了,但最初的问题仍然是当我尝试在 disabledDate 方法中访问它时数组是空的
    • 你检查disabledDate 函数是否在staffAvailableDays 设置后被调用?例如,您是否确保该数组确实位于 event.body 而不是 event.body.staffAvailableDays 中? getStaffAvailability 方法是 StaffAllocation 类的一部分吗(确保 this 指的是 StaffAllocation 的正确实例)?
    • 是的,我检查了所有这些东西,问题仍然存在
    猜你喜欢
    • 1970-01-01
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多