You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Big Calendar无法显示事件:此前正常现假数据配置也失效

日历组件无法显示事件(控制台可正常打印事件数据)

两天前我基于数据库中的事件创建了一个日历组件,当时能正常显示事件。但如今哪怕用假数据的基础配置,日历也无法显示任何事件,不过控制台可以正常打印出事件数据。

近期我仅对独立的个人资料页面添加了编辑功能,未修改日历相关代码,此前日历一直运行正常。我给日历设置了自定义样式(如最小高度),尝试创建仅使用假数据的基础日历,同样无法显示事件。

export default function CalendarModal({ onClose }) {
  const [savedPosters, setSavedPosters] = useState<IPoster[]>([]);
  const [profile] = useRecoilState(profileState);
  const localizer = momentLocalizer(moment);
  const [isReady, setIsReady] = useState(false);
  const [events, setEvents] = useState<
    {
      title: string;
      start: Date;
      end: Date;
    }[]
  >([]);

  useEffect(() => {
    setIsReady(false);
    const storedProfile = localStorage.getItem("userProfile");
    if (storedProfile) {
      fetchData();
    }
  }, []);

  useEffect(() => {
    if (isReady) {
      makeEvents();
    }
  }, [isReady]);

  const fetchData = async () => {
    await getUserLikes();
    setIsReady(true);
  };

  const getUserLikes = async () => {
    try {
      const likesResp = await fetch(/* actual backend call */);
      if (likesResp.ok) {
        const likes = await likesResp.json();
        setSavedPosters(likes.data);
      }
    } catch (error) {
      console.error("Error fetching likes:", error);
    }
  };

  const makeEvents = () => {
    const newEvents = [
      ...savedPosters.map((poster) => {
        const startDate = moment(poster.startDate).toDate();

        const endDate = poster.endDate
          ? moment(poster.endDate).toDate()
          : moment(poster.startDate).toDate();

        const event = {
          title: poster.title!,
          start: startDate,
          end: endDate,
        };
        return event;
      }),
    ];
    setEvents(newEvents);
  };

  const customStyle = {
    minHeight: 500,
    width: 700,
    fontFamily: "'quicksand', sans-serif",
  };

  const eventStyleGetter = (event, start, end, isSelected) => {
    const style = {
      border: "none",
      borderRadius: "0",
      backgroundColor: isSelected
        ? "var(--dark-purple70)"
        : "var(--dark-purple100)",
    };
    return {
      style,
    };
  };

  return (
    {/* modal creation */}
    ...
    {events.length > 0 && (
      <ChakraProvider>
        <Calendar
          localizer={localizer}
          events={events}
          defaultView="week"
          views={["day", "week", "month"]}
          startAccessor="start"
          endAccessor="end"
          style={customStyle}
          eventPropGetter={eventStyleGetter}
        />
      </ChakraProvider>
    )}
  );
}

内容的提问来源于stack exchange,提问作者leaf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 04:05:37