有没有办法只启用某些日历选项?
Is there a way to enable only certain calendar options?
我正在尝试创建一个取决于参数的日历。如果用户想要周末通行证,我需要让他在一个月的时间段内只选择周五、周六、周日中的一组。
示例:
如果我选择今天 09/09/2021 购买周末通行证,我可以选择 10-12/09,17-19/09,24-26/09 九月。
日历必须是无限的才能每天更新。我创建了值 date
、month
、year
以获取当前的完整日期,我将其解析为 minDate
maxDate
以将选项限制为只有一个月。
代码:
render() {
let newDate = new Date()
let date = newDate.getDate();
let month = newDate.getMonth();
let year = newDate.getFullYear();
let weeklyVignette = newDate.getDate();
const {label, t, value = '', loading, error, width, height, displayOptions, locale, key, required, validateOnBlur,
theme, name, proposed, disabled = false, onChange, minDateBeforeToday, setError, available=true,
minDate = new Date(year, month, date),
maxDate = new Date(year, month, date+30)} = this.props;
const {selected} = this.state;
const _locale ={...locale, ...{weekdays: locale.weekdays.map(day => t(day))}}
const resultCalendar =
this.state.open && !disabled
? <InfiniteCalendar
width={width}
height={height}
selected={value||selected||proposed}
displayOptions={displayOptions}
locale={_locale}
theme={theme}
minDate={minDate}
weeklyVignetteDays = { (weeklyVignette===4 && weeklyVignette===5 && weeklyVignette===6 )}
max = { new Date(year, month, date+30) } // Maximum month to render
min = { new Date(year, month, date) } // Minimum month to render
maxDate={maxDate}
onSelect={(e) => this.onClick(e, onChange)}
/>
: null;
如何屏蔽当月除周五、周六和周日以外的所有日期?
有什么想法吗?
你应该使用 disabledDays
的 属性
例如禁用周一和周日:[0, 6]
在你的情况下你应该使用:disabledDays = [0,1,2,3]
我正在尝试创建一个取决于参数的日历。如果用户想要周末通行证,我需要让他在一个月的时间段内只选择周五、周六、周日中的一组。
示例: 如果我选择今天 09/09/2021 购买周末通行证,我可以选择 10-12/09,17-19/09,24-26/09 九月。
日历必须是无限的才能每天更新。我创建了值 date
、month
、year
以获取当前的完整日期,我将其解析为 minDate
maxDate
以将选项限制为只有一个月。
代码:
render() {
let newDate = new Date()
let date = newDate.getDate();
let month = newDate.getMonth();
let year = newDate.getFullYear();
let weeklyVignette = newDate.getDate();
const {label, t, value = '', loading, error, width, height, displayOptions, locale, key, required, validateOnBlur,
theme, name, proposed, disabled = false, onChange, minDateBeforeToday, setError, available=true,
minDate = new Date(year, month, date),
maxDate = new Date(year, month, date+30)} = this.props;
const {selected} = this.state;
const _locale ={...locale, ...{weekdays: locale.weekdays.map(day => t(day))}}
const resultCalendar =
this.state.open && !disabled
? <InfiniteCalendar
width={width}
height={height}
selected={value||selected||proposed}
displayOptions={displayOptions}
locale={_locale}
theme={theme}
minDate={minDate}
weeklyVignetteDays = { (weeklyVignette===4 && weeklyVignette===5 && weeklyVignette===6 )}
max = { new Date(year, month, date+30) } // Maximum month to render
min = { new Date(year, month, date) } // Minimum month to render
maxDate={maxDate}
onSelect={(e) => this.onClick(e, onChange)}
/>
: null;
如何屏蔽当月除周五、周六和周日以外的所有日期?
有什么想法吗?
你应该使用 disabledDays
例如禁用周一和周日:[0, 6]
在你的情况下你应该使用:disabledDays = [0,1,2,3]