Skip to content

[calendar] 日历组件带有switchMode时不能正确加载日历视图 #3455

@ITsPro-CN

Description

@ITsPro-CN

tdesign-miniprogram 版本

1.8.4

重现链接

No response

重现步骤

简单DEMO

<t-calendar switch-mode="month" minDate="{{minDate}}" maxDate="{{maxDate}}">

在页面加载完成后修改minDate或maxDate,且当天不在区间范围内。

由于calendar.js line 197 calcCurrentMonth方法中,在newValue为null时会使用this.getCurrentDate()作为当前的日期值,该方法默认值为当天,此时如果正好设置了minDate或maxDate,且当天不在区间范围内,line 204设置的currentMonth会是一个空数组,会导致日期试图无法正常加载:

Image

这个问题解决方法比较多,所以发个issue你们评估一下。一个可行的方法是在line 202后面判断一下是否空数组,如果是空数组的话用minDate刷新视图。

if (currentMonth.length === 0) {
	this.calcCurrentMonth(this.data.minDate)
	return
}

当然也可以修改getCurrentDate方法,增加一个判断value是否在minDate和maxDate之间的步骤,并对非法的value进行处理。就是不知道会不会对不设置switch-mode的时候产生影响。

期望结果

No response

实际结果

No response

基础库版本

No response

补充说明

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    🐞 bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions