我正在使用软件包@fullcalendar/react在我的管理仪表板网站中创建日历.我想要的是允许管理员添加事件,它们将显示在firebase firestore数据库的完整日历中.

但是,当我获取我的事件集合时,它只是在日历中不显示任何内容.

我做错了什么?为什么这些事件没有出现?

这是我的eventsData数组的控制台日志(log).

enter image description here

这是我的代码:

import FullCalendar from "@fullcalendar/react";
import dayGridPlugin from "@fullcalendar/daygrid";
import interactionPlugin, { Draggable } from "@fullcalendar/interaction";
import BootstrapTheme from "@fullcalendar/bootstrap";
import firebase from '../../firebase';

const Calender = props => {

 const [eventsData, setEventsData] = useState({})

 const getEventsData = async () => { 
    await firebase.firestore().collection("Events").get().then((snapshot) => {
      const events = snapshot.docs.map(event => event.data());
      setEventsData(events)
      console.log(events)
    }).catch((e) => {
      console.log(e + "fetching error")
    })
  }

 useEffect(() => {
    getEventsData()
  },[])


       return(

                   <FullCalendar
                        plugins={[
                          BootstrapTheme,
                          dayGridPlugin,
                          interactionPlugin,
                        ]}
                        slotDuration={"00:15:00"}
                        handleWindowResize={true}
                        themeSystem="bootstrap"
                        headerToolbar={{
                          left: "prev,next today",
                          center: "title",
                          right: "dayGridMonth,dayGridWeek,dayGridDay",
                        }}
                        events={eventsData}
                        editable={true}
                        droppable={true}
                        selectable={true}
                   
                      />

              )
            }

推荐答案

我的代码的问题是,我使用和异步函数来获取数据,而这并没有使数据显示出来.删除异步/等待修复了该问题.

const getEventsData = () => { 
    firebase.firestore().collection("Events").get().then((snapshot) => {
      const events = snapshot.docs.map(event => event.data());
      setEventsData(events)
      console.log(events)
    }).catch((e) => {
      console.log(e + "fetching error")
    })
  }

Javascript相关问答推荐

如何在JavaScript中通过一次单击即可举办多个活动

GrapeJS -如何保存和加载自定义页面

在网页上添加谷歌亵渎词

为什么!逗号和空格不会作为输出返回,如果它在参数上?

使用Java脚本根据按下的按钮更改S文本

查找最长的子序列-无法重置数组

无法访问Vue 3深度监视器中对象数组的特定对象值'

无法读取未定义错误的属性路径名''

使用GraphQL查询Uniswap的ETH价格

如何创建返回不带`new`关键字的实例的类

如何在.NET Core中将chtml文件链接到Java脚本文件?

将异步回调转换为异步生成器模式

TinyMCE 6导致Data:Image对象通过提供的脚本过度上载

如何确保预订系统跨不同时区的日期时间处理一致?

将范围 Select 器添加到HighChart面积图

如何找到带有特定文本和测试ID的div?

判断函数参数的类型

在HTML5画布上下文中使用putImageData时,重载解析失败

固定动态、self 调整的优先级队列

带有JS模块模式的Rails的Importmap错误:";Net::ERR_ABORTED 404(未找到)&Quot;