Javascript 无法读取属性';模式';flatpickr.js中未定义错误的定义

Javascript 无法读取属性';模式';flatpickr.js中未定义错误的定义,javascript,onchange,dom-events,flatpickr,Javascript,Onchange,Dom Events,Flatpickr,我使用2个flatpickr日历实例来显示start和end时间间隔。当用户更改start时间时,我会另外更新end时间的minDate值,同样地,在end时间的任何更新中,我会更新start时间的maxDate值。我的代码如下所示: onPageLand() { var startTimeConfig = { datetime: { enableTime: true, maxDate: new Date(<<-

我使用2个flatpickr日历实例来显示
start
end
时间间隔。当用户更改
start
时间时,我会另外更新
end
时间的
minDate
值,同样地,在
end
时间的任何更新中,我会更新
start
时间的
maxDate
值。我的代码如下所示:

onPageLand() {
    var startTimeConfig = {
        datetime: {
            enableTime: true,
            maxDate: new Date(<<--initial end time-->>),
            dateFormat: "Y-m-d H:i",
            defaultDate: new Date(<<--initial start time-->>),
            onClose: function (selectedDates, dateStr, instance) {
                let changedStartTime = new Date(dateStr);
                if (startTime.toString() != changedStartTime.toString()) {
                    startTime = changedStartTime;
                    //take update actions
                }

                endTimeConfig.datetime.minDate = changedStartTime;
                renderCalendar(startTimeConfig, endTimeConfig, calendarInstances);
            },
            onChange: function () {
            }
        }
    }


    var endTimeConfig = {
        datetime: {
            enableTime: true,
            minDate: new Date(<<--initial start time-->>),
            dateFormat: "Y-m-d H:i",
            defaultDate: new Date(<<--initial end time-->>),
            onClose: function (selectedDates, dateStr, instance) {
                let changedEndTime = new Date(dateStr);
                if (endTime.toString() != changedEndTime.toString()) {
                    endTime = changedEndTime;
                    //take update actions
                }

                startTimeConfig.datetime.maxDate = changedEndTime;
                renderCalendar(startTimeConfig, endTimeConfig, calendarInstances);
            },
            onChange: function() {
            }
        }
    }
    renderCalendar(startTimeConfig, endTimeConfig, calendarInstances);
}


function renderCalendar(startTimeConfig, endTimeConfig, calendarInstances) {
    var configs = [startTimeConfig, endTimeConfig];
    if (configs.length === calendarInstances.length) {
        for (var i = 0; i < calendarInstances.length; i++) {
            console.log(configs[i][calendarInstances[i].getAttribute("data-id")]);
            flatpickr(calendarInstances[i], configs[i][calendarInstances[i].getAttribute("data-id")] || {});
        }
    }
}
onPageLand(){
var startTimeConfig={
日期时间:{
启用时间:对,
maxDate:新日期(),
日期格式:“Y-m-d H:i”,
defaultDate:新日期(),
onClose:函数(selectedDates、dateStr、instance){
让changedStartTime=新日期(dateStr);
if(startTime.toString()!=changedStartTime.toString()){
开始时间=更改开始时间;
//采取更新操作
}
endTimeConfig.datetime.minDate=changedStartTime;
renderCalendar(startTimeConfig、endTimeConfig、calendarInstances);
},
onChange:function(){
}
}
}
var endTimeConfig={
日期时间:{
启用时间:对,
minDate:新日期(),
日期格式:“Y-m-d H:i”,
defaultDate:新日期(),
onClose:函数(selectedDates、dateStr、instance){
让changedEndTime=新日期(dateStr);
if(endTime.toString()!=changedEndTime.toString()){
endTime=changedEndTime;
//采取更新操作
}
startTimeConfig.datetime.maxDate=changedEndTime;
renderCalendar(startTimeConfig、endTimeConfig、calendarInstances);
},
onChange:function(){
}
}
}
renderCalendar(startTimeConfig、endTimeConfig、calendarInstances);
}
函数renderCalendar(startTimeConfig、endTimeConfig、calendarInstances){
var configs=[startTimeConfig,endTimeConfig];
if(configs.length==calendarInstances.length){
对于(var i=0;i
在上面的代码中,当我更改
开始
结束
日期中的值并关闭日历弹出窗口时,控制台上出现以下错误:

未捕获的TypeError:无法读取未定义的属性“mode” 在S(calendar.js:630) 在HTMLDocument。(calendar.js:489) S@calendar.js:630 (匿名)@calendar.js:489

如何解决上述问题

PS:我的意图是

  • 关闭
    onClose中的火灾更新功能
  • 始终保持
    end
    minDate
    时间选择等于
    start
    时间选择,保持
    start
    maxDate
    时间选择等于
    end
    时间选择

  • 这发生在我试图在close()回调中销毁FlatPicker实例时,在我的情况下,它似乎并没有造成任何伤害。但是,通常不需要销毁FlatPicker实例,特别是如果使用相同的选择器,因为它会自动销毁该选择器上的任何以前的实例(至少根据文档)