javascript - 将谷歌日历 API 集成到 React hooks

标签 javascript python-3.x reactjs

我的问题是如何使用react进行集成? 日历需要创建新约会、管理或编辑约会, 分享并邀请新预订?

我已经尝试通过获取获取谷歌API, 并安装软件包但没有任何效果。

最佳答案

您可以使用 react-big-calendar 包来实现这一点,并从 Google Calendar API 获取事件。它对我有用,我正在使用create-react-app。查看步骤:

  1. 安装这些软件包:npm i react-big-calendar moment superagent style-loader css-loader
  2. Check that you have your Google Calendar public
  3. Get your Calendar ID
  4. 将此文件 (fetch.js) 添加到您的 src 文件中(小心替换代码中的变量)
import request from "superagent";
import { Config } from "../../components/Config/Config";

let GOOGLE_CALENDAR_URL = `https://www.googleapis.com/calendar/v3/calendars/${<YOUR_CALENDAR_ID>}/events?key=${<YOUR_API_KEY>}`;

    export function getEvents(callback) {
  request.get(GOOGLE_CALENDAR_URL).end((err, resp) => {
    if (!err) {
      const events = [];
      JSON.parse(resp.text).items.map(event => {
        return events.push({
          start: new Date(event.start.dateTime.toString()),
          end: new Date(event.end.dateTime.toString()),
          title: event.summary
        });
      });
      callback(events);
    }
  });
}
  • 最后,在您的 App.js 中,输入以下代码:
  • import React, { Component } from "react";
    import BigCalendar from "react-big-calendar";
    import moment from "moment";
    import { getEvents } from "./fetch";
    
    import "react-big-calendar/lib/css/react-big-calendar.css";
    import "./App.css";
    
    const localizer = BigCalendar.momentLocalizer(moment); // or globalizeLocalizer
    
    export default class App extends Component {
      constructor(props) {
        super(props);
        this.state = {
          events: []
        };
      }
    
      componentDidMount() {
        getEvents(events => {
          this.setState({ events });
        });
      }
    
      render() {
        return (
          <div>
            <BigCalendar
              localizer={localizer}
              events={this.state.events}
              startAccessor="start"
              endAccessor="end"
              defaultView="week"
              culture="fr"
            />
          </div>
        );
      }
    }
    

    虽然我没有在代码中添加交互,但是你可以have a closer look at this page to know more .

    来源:

    关于javascript - 将谷歌日历 API 集成到 React hooks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59866754/

    相关文章:

    javascript - moment.utc(date) 和 moment(date).utc() 之间的区别

    python-3.x - 安装 Pygame/Python 3.4.1 时出错

    python - numpy block 科学记数法

    javascript - 类型 'XYZ' 上不存在属性 'Readonly<{ children?: ReactNode; }> & Readonly<{}>'

    javascript - 如何动态地将提供者添加到注入(inject)器?

    javascript - Angular 服务不返回数据

    reactjs - 在 NextJS 中使用绝对导入后 VSCode 自动导入不起作用

    javascript - React JS 待办事项列表应用 |获取值并推送到状态

    javascript - 跨浏览器addEventListener

    python-3.x - 在 R markdown 中渲染 Pandas 表