如何在反应日历中标记特定日期

Jam*_*iva 7 reactjs

如何在react-calendar中突出显示特定日期?

这是我的代码:

<Calendar
    style={{ height: 500 }}
    onChange={this.onChange}
    value={this.state.date}
    tileContent={d}
    hover={'2020-02-29'}

    tileDisabled={({ date }) => date.getDay() === 0}

    minDate={
        new Date()
    }
></Calendar>
Run Code Online (Sandbox Code Playgroud)

Jam*_*iva 15

我解决了这个问题......我修改了我的代码

CSS代码

  .highlight {
                color:red;
             }
Run Code Online (Sandbox Code Playgroud)

我创建了一个包含多个日期的数组

const mark = [
      '04-03-2020',
      '03-03-2020',
      '05-03-2020'
  ]
Run Code Online (Sandbox Code Playgroud)

最后,日历将如下所示

<Calendar
    style={{ height: 500 }}
    onChange={this.onChange}
    value={this.state.date}
    tileClassName={({ date, view }) => {
      if(mark.find(x=>x===moment(date).format("DD-MM-YYYY"))){
       return  'highlight'
      }
    }}


    tileDisabled={({ date }) => date.getDay() === 0}

    /*maxDate={new Date(2020, 1, 0)}</div>*/
     minDate={
      new Date()
    }
  >
</Calendar>
Run Code Online (Sandbox Code Playgroud)

输出 在此输入图像描述

  • 我会警告这是 ao(n^2) 操作,并且应该将数组更改为哈希集 `marks = new Set(['04-03-2020', '03-03-2020', '05-03 -2020', ect...])`,您可以使用 `marks.has(...)` o(1),而不是使用 `marks.find(...)` o(n)。因此,当您添加更多标记天数时,性能不会降低。 (4认同)