Modal 不隐藏 FullCalendar 元素

Modal does not hide FullCalendar elements

我在 React 中使用 FullCalendar,当单击按钮时需要一个模式 pop-up。

我遇到的问题是日历的某些元素不会在叠加层后面淡化,而是完全不透明并在模式前面。

具体来说,在 dayGridMonth 视图中,元素是构成日历的内部网格、每个单元格中的日期数字、事件和当天突出显示(即所有 internal calendar elements)。但是,工具栏 header、日期文本和外部边框都按需要隐藏了。

listDaylistWeek 视图中,只有工具栏中的活动按钮出现异常。

我试过实现一个普通的 JS 模态并使用 react-modal。两个问题都存在。

import { useState } from "react";
import TaskModal from './TaskModal';

function Calendar (props) {
  const [modalOpen, setModalOpen] = useState(false);

  function addEvent () {
    setModalOpen(true);
  }

  return (
    <div>
      <FullCalendar
        headerToolbar={{
          start: "addEvent",
          center: "foo",
          end: "bar",
        }}
        customButtons={{
          addEvent: {
            text: "+",
            click: addEvent,
          }
        }}
        some other props...
      >
      <TaskModal modalOpen={modalOpen} setModalOpen={setModalOpen} />
    </div>
  );
}
import Modal from "react-modal";


export default function TaskModal (props) {
  Modal.setAppElement("#root");

  return (
    <Modal
      isOpen={props.taskModalVisible}
      onRequestClose={false}
      contentLabel="My dialog"
    >
      <div>My modal dialog.</div>
      <button onClick={() => props.setTaskModalVisible(false)}>Close modal</button>
    </Modal>
  );
}

问题很简单,问题元素的 CSS z-index 非常高(高达 999)。通过向 Modal 添加 classNameoverlayClassName 属性解决了这个问题。然后给这些 类 一个更高的 z-index 这样其他的都会落后。