0

我只需要在我的react-day-picker. 剩余的日子应该被禁用。谁能给我一个如何做到这一点的例子?

我试过这个例子,但它不适合我。

export default function Example() {
  getDaysInMonth(month, year){
    // Since no month has fewer than 28 days
    let date = new Date(year, month, 1);
    const days = [];
    while (date.getMonth() === month) {
      dateys.push(new Date(date));
      date.setDate(date.getDate() + 1);
    }
    return days;
  }
  const disabledMonth = this.getDaysInMonth(12, 2017);
    return (
      <DayPicker
        initialMonth={new Date(2017, 3)}
        disabledDays={
          this.disabledMonth.filter(
            (date) => ![new Date(2017, 12, 3), new Date(2017, 12, 13)].includes(date)
          )
        }
      />
    );
}

我试图运行这段代码我得到空数组

4

1 回答 1

1

一个选项是,如果两天在同一个月内,您可以设置用户不能更改月份。您可以使用初始月份设置这是哪个月份。

然后,您可以设置禁用日期,这将是一个日期数组,即该月的日期,不包括两个可用日期。

例子:

如果您使用类似这样的方法来获取一个月内的所有日期,您可以执行以下操作:

import React from 'react';
import DayPicker from 'react-day-picker';
import 'react-day-picker/lib/style.css';

export default function Example() {
  const disabledMonth = getDaysInMonth(11, 2017);

  return (
    <DayPicker
      initialMonth={new Date(2017, 11)}
      disabledDays={
        this.disabledMonth.filter(
          (date) => ![new Date(2017, 11, 3).toString(), new Date(2017, 11, 13).toString()].includes(date.toString())
        )
      }
    />
  );
}

在这里,我过滤掉了两个日期,即 12 月 3 日和 13 日,它们应该是可用的。

这是用es6写的

于 2017-12-14T09:56:14.763 回答