1

我有一个 2 个月的日历,我希望用户能够从 8 周的范围内选择一个日期,但只能从当前日期后的 3 周开始。例如,如果当前日期是 2019 年 12 月 23 日星期一,则用户可以选择的第一个开放日期是 1 月 13 日到 3 月 2 日(8 周)。因此应禁用 12 月 24 日至 1 月 12 日的日期,开放范围应为 1 月 13 日至 3 月 2 日。

我在想这样的事情,但没有奏效:

 handleDayClick(day, modifiers = {}) {

    const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds
    const diffDays = Math.round(Math.abs((day - this.state.from) / oneDay));
    const range = DateUtils.addDayToRange(day, undefined);

    if (diffDays <= 21 , modifiers.disabled) {
        const range = DateUtils.addDayToRange(day, this.state);
        this.setState(range);
    }
    else {
        this.setState( { selectedDay: modifiers.selected ? undefined : day});
    }

DayPicker 看起来像这样:(目前仅启用星期一)

<DayPicker
                        onDayClick={this.state.date}
                        numberOfMonths={2}
                        selectedDays={this.state.selectedDay}
                        onDayClick={this.handleDayClick}
                        formatMonthTitle
                        disabledDays={[
                            { daysOfWeek: [0, 2, 3, 4, 5, 6] }, { before: new Date() }]}
                        month={this.state.month}
                        onInteraction={this.handleDaySelect}
                        onMonthChange={this.handleMonthChange}


                        modifiers={
                            {
                                monday: { daysOfWeek: [1] }
                            }
                        }
                        value={this.date}
                        onChange={(d) => { this.onChange(d) }}

                    />
4

0 回答 0