react-big-calendar一个比较好的日历(schedule)添加事件标注插件

本文档介绍了如何使用react-big-calendar组件在React应用中创建一个用户可以选择时间创建会议的日历功能。通过设置`selectable`属性为true,用户可以在日历上选择时间。`events`数组用于展示日历上的事件,而`onSelectSlot`回调则在用户选择时间后触发,允许添加新的事件。示例代码展示了如何配置国际化、默认日期和事件,并提供了交互式日历的截图。
摘要由CSDN通过智能技术生成

文章参考

  1. react-big-calendar github
  2. react-big-calendar 例子和文档

问题描述

最近想做一个用户根据日历(schedule)选择时间创建会议的功能,千挑万选最终找到 “react-big-calendar” 组件

快速入门

import React, { Component } from "react";
import { Calendar, momentLocalizer } from "react-big-calendar";
import moment from "moment";
import "react-big-calendar/lib/css/react-big-calendar.css";
import 'moment/locale/zh-cn';
// 将日历选择为国际化
moment.locale('zh-cn');
const localizer = momentLocalizer(moment);


class SchedulePage extends Component {

  constructor(...args) {
    super(...args)

    this.state = {
      events: [
        {
          start: moment().toDate(),
          end: moment()
            .add(1, "days")
            .toDate(),
          title: "Some title"
        }
      ]
    };  
  }
  handleSelect = ({ start, end }) => {
    const title = window.prompt('New Event name')
    console.log(start, end)
    debugger
    if (title)
      this.setState({
        events: [
          ...this.state.events,
          {
            start,
            end,
            title,
          },
        ],
      })
  }

  render() {
    return (
      <div className="App">
        <Calendar
          selectable
          onSelectSlot={this.handleSelect}
          localizer={localizer}
          defaultDate={new Date()}
          defaultView="month"
          events={this.state.events}
          style={{ height: "100vh" }}
        />
      </div>
    );
  }
}

export default SchedulePage;

参数说明:

  1. 根据 moment 组件来实现国际化

  2. "selectable"为true 表示用户可以在schedule 中选中

  3. “events” 是一个数组,表示要在日历上显示的事件

  4. “onSelectSlot” 表示用户选择完日历之后,触发的事件回调

效果如图:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值